日期:2014-05-20  浏览次数:20641 次

一个关于string的基本功的小程序,求优化!
private static String revert2(String str, char marker){
String temp = str;
String ss="";
int j = str.lastIndexOf(marker);
while(j>=0){
ss += temp.substring(j+1, str.length()) +" ";
str = str.substring(0, j);
j = str.lastIndexOf(marker);
}
ss +=str;
return ss;
}

总觉得这个方法的temp可以不用,可是又没办法!
------解决方案--------------------
运行了一下,才看明白楼主代码的逻辑。其实可以用一种更简单的逻辑来实现楼主上述方法的功能。

public static String revert3(String str, char marker){
String temp = String.valueOf(marker);
String[] strs = str.split(temp);
StringBuffer sb = new StringBuffer();
for(int i=strs.length-1;i>-1;i--){
if(i == 0){
sb.append(strs[i]);
}else{
sb.append(strs[i]+" ");
}
}
return sb.toString();
}

------解决方案--------------------
切割字符串得到str[] ,倒序连接,中间加空格 
------解决方案--------------------
继续优化一下 


int j = 0;
return ((j = str.lastIndexOf(marker)) == -1) ? str : str
.substring(j + 1,
str.length())
+ " "
+ revert2(
str.substring(0, j),
marker).trim();

我这算最简化的编码么.....