Gå til innhold

Metode returnerer string, skal returnere flere treff.


Anbefalte innlegg

Jeg arbeider med en oppgave til skolen, hvor programmet vi lager kun er metodene, men vi lager aldri slik at det faktisk er kjørbart så man kan få testet det. Derfor lurer jeg på om dette er mulig:

 

		if (riktig.size() > -1){
		String returner = " ";
		for (int k = 0; riktig.size() > k; k++ ){
			returner = returner + "/n" + riktig.get(k).getId() +":"+riktig.get(k).getNavn()+":"+riktig.get(k).getEier();
		}
		return returner;
	}
	else {
		return "Ikke registrert noen.";
	}

 

Da er det den delen i for løkken jeg lurer på om vil fungere? Vil jeg få en string med flere linjer?

 

"riktig" er en arraylist med alle objektene som stemmer med det tenkte søket.

Lenke til kommentar
Videoannonse
Annonse

Du vil få en string med flere linjer, men her trengs det litt optimering. Første linja er alltid tom med mellomrom som eneste tegn (vet ikke hvorfor du instansierer en string med ett mellomrom, en tom string er vel bedre?), noe som du bør fikse. Dessuten er ArrayList.size() alltid større enn -1 (0 hvis lista er tom), så "Ikke registrert noen" vil aldri returneres.

Lenke til kommentar

Dersom jeg ikke sattse stringen til " " fikk jeg eclipse "String returner may not have been initialized" av en eller annen grunn, selv om den ikke returneres om den ikke initialiseres.

 

Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet.

 

Takk for svar :)

Lenke til kommentar

Dersom jeg ikke sattse stringen til " " fikk jeg eclipse "String returner may not have been initialized" av en eller annen grunn, selv om den ikke returneres om den ikke initialiseres.

 

Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet.

 

Takk for svar :)

 

Jeg mener:

String returner = "";

istedenfor

String returner = " ";

 

"String returner may not have been initialized" får du hvis deklarer som følgende:

String returner;

Lenke til kommentar

Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet.

 

Arrays er 0 basert. Første element finner du på plass 0, men size() returnerer det faktiske antallet elementer i arrayet, altså 1 basert.

 

F.eks:

String[] arr = { "arr1", "arr2" };

 

arr[0] vil gi "arr1"

arr[1] vil gi "arr2"

size() vil gi 2

Endret av miXer
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å
×
×
  • Opprett ny...