Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Strenganalyse gir deg muligheten til å ta inn en streng, analysere den og hente ut de delene/informasjonen du trengerHer finner du enkle teknikker for å analysere en streng og manipulere den til å hente ut informasjonen du ønsker.

Det finnes mange teknikker for å hente ut informasjon som du trenger fra en streng. På denne siden vil vi gå igjennom mange slike teknikker for å hente ønskelig informasjon fra en satt streng. Vi vil hovedsakelig bruke ferdiglagde metoder for en streng. En full oversikt over metoder som klassen String benytter seg av finner du her. Sjekk ut siden Datatyper for en oversikt og eksempler over metoder som er mye brukt. 

 

indexOf(char c) - Finne indeksen til en char

Dette er en god metode for å finne en spesiell bokstav i en string og få indeksen som den innehar. Dette kan gjøre oppdeling av navn enkelt, hvis det kombineres med substring(). indexOf(char c) finner indexen til første forekomst av c, vi vil se på litt flere versjoner av denne metoden.

Code Block
languagejava
titleindexOf()
String name = "Ola Nordmann";
int indexOfSurname = name.indexOf(' ')+1; //indexOfSurname inneholder nå indexen til mellomrommet, og vi kan nå skille etternavn fra hele navnet. legger til 1 for å få indexen til neste bosktav.
 
name = "Knut Ola Nordmann"
indexOfSurname = name.indexOf(' '+1); //nå har vi kun indexen til mellomnavnet. Det finnes to teknikker for å finne etternavnet
int middleName = indexOfSurname;
indexOfSurname = name.indexOf(' ', middleName)+1; //gjør indexOf() fra indexen som vi sendte inn og til slutten av strengen.
indexOfSurname = name.lastIndexOf(' ')+1; //finner siste forekomst av den gitte parameteren, i dette tilfellet whitespace, som gir oss etternavnet
 
String surName = name.substring(indexOfSurname); // strengen surName inneholder nå etternavnet.
 
 
name = "Knut Ola Hagen Nordmann"; 
//vi ønsker en ArrayList med hvert enkelt navn som et element
int beginIndex = 0;
ArrayList<String> list = new ArrayList<String>();
while(true){
	int endIndex = name.indexOf(' ', beginIndex)+1;//finner indexen til neste navn i lista
	if(endIndex == 0){ //hvis den ikke finner char'en ' ', så returnerer den -1. Sjekker for == 0 siden vi har plusset på 1 tidligere. 
		break; //Dette betyr at vi er på siste ordet og vi kan bryte ut av while-løkken
	}
	list.add(name.substring(beginIndex, endIndex-1)); //Vi har nå funnet start og slutt indexen til ordet, og vi kan legge det i lista.
	beginIndex = endIndex; //slutten på forgje ord(-1), er starten på neste
		}
	list.add(name.substring(beginIndex));//legger til det siste ordet i stringen
	System.out.println(list); // printer ut: [Knut, Ola, Hagen, Nordmann]

 

split(String regex) - Dele opp en streng rundt en annen

Selvom å bruke indexOf() er svært allsidig, kan det være noe tungvint når man kun skal dele opp en streng i flere deler. Dette gjør split() i løpet av en linje. Du definerer kun en String som den deler opp strengen din utifra. (Du bruker egentlig et spesielt mønster, regular expression, men dette er ikke nødvending å kunne)

Code Block
languagejava
titlesplit()
// som sist ønsker vi en liste med hvert enkelt navn som et element
String name = "Knut Ola Hagen Nordmann";
String[] list = name.split(" ");//list inneholder nå: [Knut, Ola, Hagen, Nordmann]

 

Behandle en e-post

Man vil ofte komme bort i e-poster som en systemutvikler. Det kan være mye forskjellig som må gjøres med den. Her er noen eksempler. Vi bruker klassen StringBuilder til å effektiv bygge opp en streng.

...