【问题标题】:Reverse of Words in Character Array [duplicate]字符数组中单词的反转[重复]
【发布时间】:2014-02-16 13:21:47
【问题描述】:

我有一个 char 数组 {'H','e','l','l','o',' ','W','i','n'}; 我想在数组中做相反的句子顺序,比如 {Win Hello}。我如何在 java 中做到这一点。

谢谢

【问题讨论】:

  • 你尝试了什么?建议:尝试在值' ' 上拆分数组。
  • 如果你想通过单词反转char数组而不使用额外的内存,参考这个方法。 tutorialspoint.com/…

标签: java arrays


【解决方案1】:

此示例解决方案适用于 char 数组和字符串:

public char[] reverseWords(final char[] input){
    return reverseWords(new String(input)).toCharArray();
}
public String reverseWords(final String input){
    //Cut words to array
    final String[] words = input.split(" ");

    String result="";
    //Reverse array
    for (int i=words.length-1; i>-1; i--){
            result += words[i]+" ";
    }
    result = result.trim();
    return result;
}

【讨论】:

    【解决方案2】:
    char ch[]={'H','e','l','l','o',' ','W','i','n'};
    String s=new String(ch);
    String temp[]=s.split(" ");
    s=""+temp[1]+" "+temp[0];
    ch=s.toCharArray();
    

    你可以通过上面的算法来反转它。现在你可以将它转换成char数组。

    【讨论】:

    • 如果有两个以上的单词怎么办?例如:char ch[]={'H','e','l','l','o','','W','i','n','','H' ,'o','w','','a','r','e','','y','o','u'}。您的解决方案不是通用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多