解决方案 »

  1.   

    运行了一下,才看明白楼主代码的逻辑。其实可以用一种更简单的逻辑来实现楼主上述方法的功能。 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();
    }
      

  2.   

    切割字符串得到str[] ,倒序连接,中间加空格 
      

  3.   

    完全依据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加一些容错性代码
      

  4.   

    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();
    }
      

  5.   

     不要用高级的方法,比如说这里的split函数,要用最纯净的方法,这是一个阿里巴巴的面试题目!
      

  6.   

    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();
    }
      

  7.   

    不好意思 没检查代码就发了,纠正一下
    int j = str.lastIndexOf(er);
    if(j==-1) 
    return str;
    return str.substring(j+1,str.length())+" "+revert2(str.substring(0,j),er).trim();
      

  8.   

    继续优化一下 
    int j = 0;
    return ((j = str.lastIndexOf(er)) == -1) ? str : str
    .substring(j + 1,
    str.length())
    + " "
    + revert2(
    str.substring(0, j),
    er).trim();我这算最简化的编码么.....
      

  9.   

     你为什么不考虑用while(j!=-1) 来处理呢?你的这个只能处理两段吧?要是 "abc efg hij klm" 这样的怎么处理?
      

  10.   


    实现split方法很难么?
    不让用就自己分割呗
      

  11.   

    如果空格也算是有效的字符串并且需要保留的话,也就是将trim去掉吧
    能将参数列出来 我试一下么
      

  12.   

    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
    好像也没什么问题么