反转单词顺序(句子反转,但单词不反转)
i am a student.---->student. a am i
思路:
(1)反转所有字符
(2)反转每个单词(判断单词是用双指针)
public class stringAbout {
//翻转
public static char[] reverse(char[] str,int start,int end){
if(str.length==0)
return null;
while(start<end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
return str;
}
public static char[] reverseAll(char[] str){
char[] result=reverse(str,0,str.length-1);
int start=0,end=0;
while(start<result.length){
if(result[start]==' '){
start++;
end++;
}
else if(end ==result.length || result[end]==' '){
reverse(result,start,--end);
start=++end;
}
else{
end++;
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] str={'i',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};
char[] result=reverseAll(str);
for(int i=0;i<str.length;i++)
System.out.print(result[i]);
}
}