簡體   English   中英

反轉Java字符串中的單個單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM