webForumDet fria alternativet

Nullvärde i stället för strängvärde

Javaur Java

4 svar · 341 visningar · startad av trexter

trexterMedlem sedan mars 20021 889 inlägg
#1

Skoluppgift (nix, inget fusk); program som håller koll på kurser. Ska ha en metod som kan visa kurserna i bokstavsordning (a-ö).

Men om jag matar in t ex "svenska" och sedan "finska" (mha av en annan metod som 100% säkert fungerar) och sedan ordnar, så visas (i dialogrutan där ajg skriver ut de intressanta strängarna)

finska
null

Så här sär de intressanta klasserna och metoden (metoden i "grundklassen" eller vad man kallar det.)

	public static String list(MinSamling objA) {
		String min;
		int minIndex;
		for (int i = 0; i < objA.nrOfObjects; i++) {
			min = objA.v[i].kursnamn;
			minIndex = i;
			for (int j = i + 1; j < objA.nrOfObjects; j++)
				if(objA.v[j].kursnamn.compareTo(objA.v[minIndex].kursnamn) <= 0) //alfabetisk ordning
					minIndex = j;
			Kurs temp = new Kurs();
			objA.v[i] = objA.v[minIndex];
			objA.v[minIndex] = temp;
		}
		
		String a = "";
		for (int i = 0; i < objA.nrOfObjects; i++) {
			a += objA.v[i].kursnamn + "\n";
		}
		return a;
	}

class Kurs {
	String kurskod;
	String kursnamn;
	int poäng;
	String betyg;
}

class MinSamling {
	//
	public static Kurs v[] = new Kurs[50];
	public static int nrOfObjects = 0;
}

Hur ska det skrivas för att det ska fungera?

:)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Felet kommer sig av raden:

Kurs temp = new Kurs();

Den skapar ett nytt Kurs-objekt som inte innehåller en initialiserad sträng. Detta tolkas senare som null. Du menade nog detta:

Kurs temp = objA.v[i];
trexterMedlem sedan mars 20021 889 inlägg
#3

Jo, det verkar fungera. Tack!

missModestyMedlem sedan apr. 2005254 inlägg
#4

Du glömmer att ge kurs temp ngt värde.

missModestyMedlem sedan apr. 2005254 inlägg
#5

Ojdå, där var jag lite sen... ;)

133 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)