Kurzschreibweisen

Status
Nicht offen für weitere Antworten.
P

pepeWucht

Gast
Hallo, ich hab da ein kleines Problem, wirklich klein, also nicht erschrecken wenn ich jetzt nen ganzen Haufen Code poste, es geht nur um eine Zeile (ganz unten, die letzte return-Anweisung, die ausgeklammert ist), nämlich "return 0 == result ? sx.compareTo(sy) : result;". Wenn mir jemand diese Zeile mal in verständlichen Code übersetzen könnte wäre ich sehr dankbar. Ich weiß dass es wohl eine Bool`sche Abfrage ist, also die Antwort bitte in Form: "if (result==0) usw..." schreiben, oder was auch immer das bedeutet. Hier noch die ganze Klasse falls die für die Problemlösung von nöten ist.

Code:
public class Anagram implements Comparator {
	public int compare(Object x, Object y) {
		String sx = (String) x;
		String sy = (String) y;

		// Strings in Arrays von char umwandeln
		char[] cx = sx.toCharArray();
		char[] cy = sy.toCharArray();

		// Arrays von char sortieren, wobei die Referenz bleibt (final) und sich die Reihenfolge der Elemente ändert
		Arrays.sort(cx);
		Arrays.sort(cy);

		// Array von char wieder in Strings umwandeln
		String tx = new String(cx);
		String ty = new String(cy);

		// in sich sortierte Strings vergleichen
		int result = tx.compareTo(ty);

		// Loesung a)
		return result;

		// Loesung b)
		// wenn result == 0 ist -> ist x und y ein Anagramm.
		// damit die Anagramme in sich sortiert werden, werden in dem Fall zusätzlich
		// die Ausgangsstrings verglichen
		// return 0 == result ? sx.compareTo(sy) : result;
	}
}

Vielen Dank für jede Hilfe
 

messi

Bekanntes Mitglied
Code:
if (result == 0)
    return sx.compareTo(sy);
return result;
 

Marc-André Aßbrock

Aktives Mitglied
Die Schreibweise kommt - so weit ich weiß - von C++ (oder einer anderen C-Sprache)
Die Übersetzung hat messi dir ja schon geschrieben:
Code:
Bedingung ? Dann-Teil : Sonst-Teil
ist das gleiche wie
Code:
if Bedingung
{
     Dann-Teil;
}
else
{
     Sonst-Teil;
}
Das ist zwar erst gewöhnungsbedürftig, doch auch manchmal nützlich. Ich setzt es aber nur sehr selten ein, wenn es nur sehr simple Abfragen sind. Ist ansonsten zu kompliziert. Wirst halt mit der Zeit sehen, ob dir diese Schreibweise liegt...

MfG
M.A.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben