从后往前扫描字符串,遇见.就输出后面的单词设置两个栈,先入栈所有的,然后出栈,如果是.就再入栈出栈。
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;
}
转载于:https://www.cnblogs.com/lxq0309/p/3676633.html
相关资源:DirectX修复工具V4.0增强版