1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public static String reverseWords2(String s) {
StringBuilder stringBuilder = new StringBuilder();
int start = 0;
for (int end = 0; end < s.length(); end++) {
//分隔单词
if (s.charAt(end) == ' ') {
//将空格前的一个单词进行反转
append(stringBuilder, s, start, end - 1);
//反转后还需要添加上空格
stringBuilder.append(' ');
//记录下一个单词的开始位置
start = end + 1;
}
//判断是否达到最后
if (end == s.length() - 1) {
append(stringBuilder, s, start, end);
}
}
return stringBuilder.toString();
}
private static void append(StringBuilder stringBuilder, String s, int start, int end) {
for (int i = end; i >= start; i--) {
stringBuilder.append(s.charAt(i));
}
}
|