- 从后往前扫描字符串,遇见.就输出后面的单词
- 设置两个栈,先入栈所有的,然后出栈,如果是.就再入栈出栈。
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; }