一个关于string的基本功的小程序,求优化! java 基础 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 运行了一下,才看明白楼主代码的逻辑。其实可以用一种更简单的逻辑来实现楼主上述方法的功能。 public static String revert3(String str, char er){ String temp = String.valueOf(er); 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[] ,倒序连接,中间加空格 完全依据LZ代码的容错程度写的: private static String revert3(String str, char er){ if(str.indexOf(er)!=-1){ return str.split(String.valueOf(er))[1]+" "+str.split(String.valueOf(er))[0]; }else{ return str; } }建议LZ加一些容错性代码 public static String revert3(String str, char er){ StringBuffer bf = new StringBuffer(); for(String T : str.split(er+"")) b.insert(0, T); return bf.toString();} 不要用高级的方法,比如说这里的split函数,要用最纯净的方法,这是一个阿里巴巴的面试题目! private static String revert2(String str, char er){ String s = ""; int j = str.lastIndexOf(er); if(j==-1) return str; return s += str.substring(j+1,str.length())+" "+revert2(str.substring(0,j),er).trim(); } 不好意思 没检查代码就发了,纠正一下int j = str.lastIndexOf(er); if(j==-1) return str; return str.substring(j+1,str.length())+" "+revert2(str.substring(0,j),er).trim(); 继续优化一下 int j = 0; return ((j = str.lastIndexOf(er)) == -1) ? str : str .substring(j + 1, str.length()) + " " + revert2( str.substring(0, j), er).trim();我这算最简化的编码么..... 你为什么不考虑用while(j!=-1) 来处理呢?你的这个只能处理两段吧?要是 "abc efg hij klm" 这样的怎么处理? 实现split方法很难么?不让用就自己分割呗 如果空格也算是有效的字符串并且需要保留的话,也就是将trim去掉吧能将参数列出来 我试一下么 private static String revert2(String str, char er) { int j;return ((j = str.lastIndexOf(er)) == -1) ? str :String.format("%s%s%s", str.substring(j + 1,str.length())," ",revert2(str.substring(0, j),er)); } public static void main(String[] args) { String s = revert2("abc efg hij klm", 'f'); System.out.println(s); }这是我测试的完整代码,已经去掉了trim打印结果是g hij klm abc e如果er是空格 打印结果是klm hij efg abc好像也没什么问题么 用java如何输出一个每行固定为100个字符的文本文件? 在线急等 PB的字符加密算法在JAVA中为什么不能实现????? 帮忙实现一个解密的算法! 一个响应用户输出的小程序 急,在线等. 我不知道如何去使用JC去编JAVA 关于用jsp做聊天室,请大家给点好的意见 请教,一个Class类的问题??? 请教高手:做MIS有前途吗? new对象 短信猫问题,两天了,没方法了, 大侠指点一下 对于ExecutorService来说,是否一个程序里应该只有一个?
String temp = String.valueOf(er);
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();
}
if(str.indexOf(er)!=-1){
return str.split(String.valueOf(er))[1]+" "+str.split(String.valueOf(er))[0];
}else{
return str;
}
}建议LZ加一些容错性代码
StringBuffer bf = new StringBuffer();
for(String T : str.split(er+""))
b.insert(0, T);
return bf.toString();
}
String s = "";
int j = str.lastIndexOf(er);
if(j==-1) return str;
return s += str.substring(j+1,str.length())+" "+revert2(str.substring(0,j),er).trim();
}
int j = str.lastIndexOf(er);
if(j==-1)
return str;
return str.substring(j+1,str.length())+" "+revert2(str.substring(0,j),er).trim();
int j = 0;
return ((j = str.lastIndexOf(er)) == -1) ? str : str
.substring(j + 1,
str.length())
+ " "
+ revert2(
str.substring(0, j),
er).trim();我这算最简化的编码么.....
实现split方法很难么?
不让用就自己分割呗
能将参数列出来 我试一下么
int j;return ((j = str.lastIndexOf(er)) == -1) ? str :String.format("%s%s%s", str.substring(j + 1,str.length())," ",revert2(str.substring(0, j),er));
} public static void main(String[] args) {
String s = revert2("abc efg hij klm", 'f');
System.out.println(s);
}这是我测试的完整代码,已经去掉了trim
打印结果是g hij klm abc e如果er是空格
打印结果是klm hij efg abc
好像也没什么问题么