如何反转组成句子的字符数组

时间:2019-02-15 07:15:53

标签: java arrays

我正在尝试弄清楚如何使用字符数组来将句子向后(或乱序)拼写出来,并用空格分隔单词,以区分它们并以正确/反转的格式对其重新排序而不是用字符数组拼写 World Good Hello ,它会像这样['H','e','l','l', 'o',',','G','o','o','d',','W','o','r','l','d']

这或多或少是在黑暗中的镜头。

最后,我想将其作为字符数组返回。

代码:

  class Main {

    public static void main(String[] args) {

    // World Good Hello
    // reverse to: Hello Good World

    char[] chrArray = new char[] {'W','o','r','l','d',' ','G','o','o','d',' ','H','e','l','l','o'};

    String str = String.valueOf(chrArray);
    String[] strArray = str.split(" ");
    char[] result = new char[0];

    for (int i = 0; i < strArray.length; i++) {

      for (int h = 0; h < strArray[i].length(); h++) {

        char[] temp = new char[strArray[i].charAt(h)];
        temp[temp.length - 1] = ' ';
        char[] both = Arrays.copyOf(result, result.length);

        List<character> temp2 = System.arraycopy(temp, 0, both, result.length, temp.length);
        result = temp2.toCharArray();
   }
  }
 }
}

2 个答案:

答案 0 :(得分:0)

我认为以下代码足以逆转:

String[] strArray = str.split(" ");
for(int i =strArray.length-1;i>=0;i--) {
    System.out.print(strArray[i] + " ");
}

这将输出:Hello Good World

答案 1 :(得分:0)

public static String reverseWords(String sentence) {
    String[] words = sentence.split("\\s+");
    StringBuilder buf = new StringBuilder(sentence.length());

    for (int i = words.length - 1; i >= 0; i--) {
        if (buf.length() > 0)
            buf.append(' ');
        buf.append(words[i]);
    }

    return buf.toString();
}

使用reverseWords(...).toCharArray()获取 char数组