如何在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);
输出:
你今天过得怎么样嗨