You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Strenganalyse gir deg muligheten til å ta inn en streng, analysere den og hente ut de delene/informasjonen du trenger.

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 informajson 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() - 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.

indexOf()
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 øsnker 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]

 

 

 

 

 

 

 

Ferdig
10

 

 

  • No labels