代码实现:
package com.company;
public class reverseSentence {
public static String reverseWord(char[] chars,int left,int right){
while (left < right){
//逆置数组元素
char temp = chars[left];
chars[left] = chars[right];
chars[right] = temp;
left++;
right--;
}
return chars.toString();
}
public static String reverseSentence(String str) {
char[] chars = str.toCharArray();
reverseWord(chars, 0, str.length() - 1); //变为 retib ma i
int i = 0;
int j = 0;
while (i < chars.length) {
if (chars[i] == ' ') { //如果i遇到是空格,i++,j++
i++;
j++;
} else if (j == str.length() || chars[j] == ' ') {
//逆置单词
reverseWord(chars, i, --j);
i = ++j;
} else {
j++;//j如果是一个字符(单词、字母),j++
}
}
return String.copyValueOf(chars);//返回指定数组中表示该字符序列的字符串
}
public static void main(String[] args) {
String str = "i am biter";
System.out.println("逆置前为:"+str);
System.out.println("逆置后为:"+reverseSentence(str));
}
}