- 从后往前扫描字符串,遇见.就输出后面的单词
- 设置两个栈,先入栈所有的,然后出栈,如果是.就再入栈出栈。
public String reverseByWord1(String str){
String reverse="";
int j = str.length();
for(int i=str.length()-1 ; i>=0 ; i--){
String temp =str.charAt(i)+"";
if(temp.equals(".")){
reverse += str.substring(i+1, j)+".";
j=i;
}
}
reverse+=str.substring(0, j);
return reverse;
}
public String reverseByWord2(String s){
char[] str = s.toCharArray();
String reverse="";
Stack<Character> stackOne = new Stack<Character>();
Stack<Character> stackTwo = new Stack<Character>();
for(int i=0;i<str.length;i++){
stackOne.push(str[i]);
}
for(int i=0;i<str.length;i++){
char c = stackOne.pop();
if((c+"").equals(".")){
while(!stackTwo.empty()){
reverse +=stackTwo.pop();
}
reverse +=".";
System.out.println("reverse---"+reverse);
}else{
stackTwo.push(c);
}
}
while(!stackTwo.empty()){
reverse +=stackTwo.pop();
}
return reverse;
}