Einfach nur anders: eine rekursive Lösung. Fügt keine zusätzlichen Leerzeichen hinzu.
public static String reverse(String s) {
int k = s.indexOf(" ");
return k == -1 ? s : reverse(s.substring(k + 1)) + " " + s.substring(0, k);
}
System.out.println("[" + reverse("This is interview question") + "]");
// prints "[question interview is This]"
Ich werde auch statt durch die Verwendung \b
auf der split
Lösung verbessern (es ist so offensichtlich!).
String[] parts = "Word boundary is better than space".split("\\b");
StringBuilder sb = new StringBuilder();
for (int i = parts.length; i --> 0 ;) {
sb.append(parts[i]);
}
System.out.println("[" + sb.toString() + "]");
// prints "[space than better is boundary Word]"
Sie wahrscheinlich in Betracht ziehen sollten Java Zertifizierung Klassen nehmen, wie sie Sie häufig Java-Bibliothek Klassen unterrichten wird. Sie verfügen dann über die erforderlichen Tools, um diese Aufgaben auszuführen. –
Kehren Sie die Zeichenfolge zuerst um. Kehren Sie die Wörter dann um. Es dauert zwei, aber sehr sauber. Kann auch in 1 Pass durchgeführt werden. – Jack
@jack, Ich denke, dein erstes Wort sollte "geteilt" werden, ja? – CPerkins