题目:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出"student. a am I"。
思路:
思路一:先将整个英语句子中每个单词翻转即将“I am a student.”翻转成“I ma a .tneduts ”。然后再将整个句子翻转就变成"student. a am I"。
思路二:先将整个英语句子中翻转,然后再将每个单词翻转。
代码实现:
思路一实现:
public static String reverse(char c[], int start, int end){ //翻转函数
if(start > end){
return "";
}
char tmp;
while(start < end){
tmp = c[start];
c[start] = c[end];
c[end] = tmp;
start++;
end--;
}
return String.valueOf(c);
}
public static String reverseSentence(String str){
if(str == null || str.trim().length() == 0){
return str;
}
String[] words = str.split(" ");
StringBuilder sb = new StringBuilder();
for(int i = 0;