Gå til innhold

ArrayList - ignorere case ved bruk av contains()?


Anbefalte innlegg

Hei! Jeg har prøvd å søke uten å finne noe godt svar på dette, så jeg prøver meg her.

 

Jeg har en ArrayList av objekter med navn, og disse navnene skal jeg overføre til en ny ArrayList som kun inneholder navnet. (Enkle strenger, den siste blir av typen ArrayList<String>). Problemet er at det skal kun være unike verdier i denne siste lista. Det skjærer seg hvis det samme navnet skrives en gang med små, og en gang med store bokstaver, fordi det da vil bli registrert som to ulike navn.

 

Jeg bruker contains() for å søke gjennom lista istedenfor å bruke equals (der man kan velge å bruke equalsIgnoreCase() ), og jeg lurer på om det finnes noe lignende for contains()? Slik at jeg kan søke gjennom uten å bekymre med for store eller små bokstaver.

 

En enkel løsning er å sette alt til lower- eller uppercase, da slipper jeg dette problemet. Men jeg vil ha navnene med store forbokstaver, og da sier det seg selv at dette blir klønete, hvis ikke jeg har gått glipp av en type capitalize-metode som er innebygget. :p

 

Det må sies at jeg er forholdsvis fersk når det gjelder dette, så jeg er på utkikk etter enkle løsninger av typen equalsIgnoreCase, og vil ikke begynne å lage egne metoder som gjør det jeg vil. Dersom det ikke finnes noe slikt kan jeg leve med å ha navnene i enten lower- eller uppercase, men jeg tenkte jeg skulle høre med noen som kan litt mer enn meg før jeg gir opp ;)

 

Jeg håper dette ikke var altfor forvirrende forklart, og på forhånd takk! :)

Lenke til kommentar
Videoannonse
Annonse

Heisann,

 

Hvorfor ikke lage din egen metode i programmet ditt, som du kjører før du putter inn noe i lista.

 

En metode som henter ut hvert element i ArrayList'en. Da kan sammenlikningen gjøres akkurat som du vil (f.eks med equalsIgnoreCase() )...

 

For å gå gjennom hele ArraList'en kan du kjøre en for(;;) løkke. Enten indeksert (og get(...) metoden eller ved å benytte en Iterator og next().

 

 

lykke til

CPL

Lenke til kommentar

Det går helt klart, men jeg tenkte jeg skulle prøve å unngå det, siden programmet er såpass lite. ;)

 

Men jeg skal se om jeg får til noe bedre enn jeg klarte klokka tre i natt, hehe. Takk for svar! :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...