Hallo,
ich bin gerade dabei, ein Java-Buch durchzuarbeiten, welches folgendes Beispiel enthält.
Erstelle ich jetzt z.B. ein Objekt mit der Startposition e5 und rufe anschließend die Methode ermittleZuege() auf, wird an die Methode ein String zurückgegeben, in welchem sich die durch Semikolons getrennten Felder befinden, auf die sich der Springer bewegen darf.
Ändere ich jedoch den Code der Methode pos, indem ich das
Welche Rolle spielt nun das
Danke im Voraus!
Tebert
ich bin gerade dabei, ein Java-Buch durchzuarbeiten, welches folgendes Beispiel enthält.
Java:
ublic class Springer {
private int spalte;
private int reihe;
final static private String SPALTE = "abcdefgh";
final static private String REIHE = "12345678";
public Springer(String startpos) {
if (startpos.length() != 2)
throw new IllegalArgumentException("ungültige Startposition");
spalte = SPALTE.indexOf(Character.toLowerCase(startpos.charAt(0)));
reihe = REIHE.indexOf(startpos.charAt(1));
if(spalte == -1 || reihe == -1)
throw new IllegalArgumentException("ungültige Startposition");
}public String ermittleZuege() {
StringBuilder zuege = new StringBuilder();
zuege.append(pos(spalte+2,reihe-1));
zuege.append(pos(spalte+2,reihe+1));
zuege.append(pos(spalte-2,reihe-1));
zuege.append(pos(spalte-2,reihe+1));
zuege.append(pos(spalte+1,reihe-2));
zuege.append(pos(spalte+1,reihe+2));
zuege.append(pos(spalte-1,reihe-2));
zuege.append(pos(spalte-1,reihe+2));
return zuege.substring(0, zuege.length()-1);
}
public String pos(int spalte, int reihe) {
if(spalte<0 || spalte>7 || reihe<0 || reihe>7) {
return "";
}else {
return ""+SPALTE.charAt(spalte)+REIHE.charAt(reihe)+";";
}
}
}
Erstelle ich jetzt z.B. ein Objekt mit der Startposition e5 und rufe anschließend die Methode ermittleZuege() auf, wird an die Methode ein String zurückgegeben, in welchem sich die durch Semikolons getrennten Felder befinden, auf die sich der Springer bewegen darf.
Code:
g4;g6;c4;c6;f3;f7;d3;d7
Ändere ich jedoch den Code der Methode pos, indem ich das
""
aus der letzten return-Anweisung entferne, wird mir Folgendes beim Ausgeben der Methode ermittleZuege() angezeigt:
Code:
155;157;151;153;153;157;151;155
Welche Rolle spielt nun das
""
und warum wird beim Weglassen ein völlig falsches Ergebnis an die Methode zurückgegeben?Danke im Voraus!
Tebert