如何在Java中的句子中翻转两个单词

输入:“嗨,你今天好吗简”

输出:“你好,你今天在做简”

我试过的

String s = "hi how are you doing today jane";
    ArrayList<String> al = new ArrayList<>();

    String[] splitted = s.split("\\s+");
    int n = splitted.length;
    for(int i=0; i<n; i++) {
        al.add(splitted[i]);
    }
  for(int i=0; i<n-1; i=i+2) {
    System.out.print(al.get(i+1)+" "+al.get(i)+" ");
  }
  if((n%2) != 0) {
          System.out.print(al.get(n - 1));
      }


我得到的输出:
“你好,今天怎么样”

最佳答案

正如您要求仅使用一个循环而不大量使用正则表达式的情况一样,这是使用Collections.swap的另一种解决方案:

String s = "hi how are you doing today jane";
List<String> splitted = new ArrayList<>(List.of(s.split("\\s+")));

for(int i = 0; i < splitted.size() - 1; i += 2)
    Collections.swap(splitted, i, i + 1);
s = String.join(" ", splitted);
System.out.println(s);


输出:


  你今天过得怎么样嗨

08-25 04:31