3 Rückgabewerte

melmager

Erfahrenes Mitglied
Ich komme nicht drumherum mal nachzufragen welche Varianten es noch so gibt :)

ich habe ein Function die zwei Strings miteinander vergleichen soll und als Ergebnis
sollte es dann 3 Werte geben.
Letzlich soll dabei raus kommen wieweit die beiden Strings übereinstimmen.
Beispiel : "Sun Java" und "Java Programm"
in Beiden kommt Java vor - Rückgabewert sollte dann "Java" ,4,1
Ab Position 4 und 1 gibst die Übereinstimmung.
Soweit das Vorgeplänkel
Nun die Frage wie kann man das am besten realisieren (nur die Rückgabe möchte ich wissen)

im Moment mache ich das mit einer eigenen Classe und die drei Werte sind einfach mal
public.

class supervergleich {
public String gemeinsam;
public Int apos,bpos;
public void vergleich(String a, String b) { bla; }
}

So jetzt Ihr - geht das auch eleganter ?

Nachtrag: mann könnte ja auch ne Classe zurückgeben in der nur die drei Werte drin sind
so als Recordset (pascal lässt grüssen ) - ist so eine variante besser ?
 
Zuletzt bearbeitet:
Mir fallen da zwei Möglichkeiten ein:
1. so wie du es gemacht hast
2. Call-by-Reference:

Du deklarierst die Variablen für die Rückgabewerte schon vorher und übergibst sie der Methode als Parameter. Wenn du die Datentypen in eine Wrapper-Klasse verpackst ist es ein Objekt und wird damit als Referenz übergeben, kann also in der Methode geändert werden.
 
Hi!

Versuchs mal so:

Code:
	public Object[] myCompare(String str1, String str2){
		int pos = -1;
		int times = -1;
		String equiStr = null;
		
		//.....
		
		Object[] ret = new Object[3];
		ret[0] = equiStr;
		ret[1] = new Integer(pos);
		ret[2] = new Integer(times);
		
		return ret;
				
	}

Gruß Tom
 

Neue Beiträge

Zurück