[英]Reverse individual words in a Java String
我正在嘗試反轉給定字符串中的文本。 我下面的代碼存在的問題是,當我輸入“ Hey man”之類的內容時,它將打印出“ nam yeH”,而我希望它顯示出“ yeH nam” 。 您有什么可以幫助我解決該錯誤的幫助嗎?
非常感謝!
public class ReverseWords {
public static void main(String[] args) {
String text;
text = IO.readString();
int plusIndex = text.indexOf("+");
if ( plusIndex != -1 ) {
IO.reportBadInput();
System.exit(0);
}
IO.outputStringAnswer(new StringBuilder(text).reverse().toString());
}
}
在空格字符上分割輸入,然后遍歷單詞數組,將它們取反,然后重新拼成新的字符串。
private String reverseWords(String text) {
String result = "";
String[] words = text.split(" ");
StringBuilder builder;
for (String word : words) {
builder = new StringBuilder(word);
result = result + " " + builder.reverse().toString();
)
return result.replaceFirst(" ", "");
}
reverseWords("hey man"); //should return "yeh nam"
使用StringTokenizer標記單詞,然后逐個單詞反轉,然后通過添加缺失的空格將其匯總為字符串。 像這樣:
public static void main(String[] args) {
String s = "Hey man";
System.out.println(new StringBuilder(s).reverse());
StringTokenizer st = new StringTokenizer(s, " ");
StringBuilder sb = new StringBuilder();
while (st.hasMoreTokens()) {
sb.append(new StringBuilder(st.nextToken()).reverse());
if (st.hasMoreTokens()) {
sb.append(" ");
}
}
System.out.println(sb.toString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.