Schreiben Sie code drucken Sie die Lage von jedem Raum im string
So, ich bin versucht, code zu schreiben, zu drucken, die Lage des Raumes in die 2-Zeichen-string-passCode. Jeder Raum erkannt gedruckt werden soll, eine separate Anweisung, gefolgt von einem newline.
schrieb ich diesen code und es funktionieren würde, bis passcode = " ";
public class space{
public static void main(String args[]) {
String passCode = "";
passCode = "A ";
int p = passCode.length();
/*
for(int i = 0; i < p; i++) {
int b = passCode.charAt(i);
if(Character.isWhitespace(b)){
System.out.println("Space at " + passCode.indexOf(b));
}
}
}
}
jedoch fand ich einen Weg, es zu tun, wo es dann richtig bewerten, wenn passcode = " ";
unten geschrieben
int indexOfSpace = passCode.indexOf(" ");
while(indexOfSpace >= 0){
System.out.println("Space at " + indexOfSpace);
indexOfSpace = passCode.indexOf(" ", indexOfSpace + 1);
}
könnte mir jemand bitte erklären, warum es funktioniert, wenn sich beide Indizes sind leer, für die while-Schleife und keine for-Schleife ?
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide Lösungen sind korrekt, das problem ist, Ihr print-Anweisungen. Nämlich:
Sind Sie hier abrufen der Charakter an der index, aber dein problem kommt, wenn man sich über den Charakter. indexOf(char) liefert den ersten index, der diesen Charakter. Da die Schnur hat zwei gleiche Zeichen, es wird ja immer wieder der erste index, der in dieser Instanz. Sollten Sie drucken Sie Ihre index statt:
Diese funktioniert, ist aber sehr rudimentär: