码迷,mamicode.com
首页 > 其他好文 > 详细

关于String的split方法的一点疑问

时间:2014-08-16 11:05:40      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   for   ar   问题   div   

  今天莫名其妙的又做了一下leetcode上面的第一题,是简单的字符串逆序输出问题。下面是我处理的代码:

public String reverseWords(String s) {
        if(s == null) return new String("");
        
        StringBuffer fir = new StringBuffer(s);
        if(fir.length() == 0) return new String("");
        
        while(fir.length() != 0 && fir.charAt(0) == ‘ ‘){
            fir = fir.deleteCharAt(0);
        }
        if(fir.length() == 0) return new String("");
        
        StringBuffer res = new StringBuffer();
        String son[] = fir.toString().split(" ");
        
        for(int i = son.length - 1; i > 0; i--){
            //if(son[i].length() == 0) continue;
            son[i] = son[i].trim();
            res.append(son[i] + " ");
        }
            
        res.append(son[0].trim());
        return res.toString();
    }

  当我用split(" ")切割字符串时,如果有连续空格,那应该会切出来只包含一个空格的子串,但是代码中被注释掉的语句竟然成功的处理了那些只包含空格的子串,使其不会出现在返回结果中。

  也就是说,如果被注释行保持注释,调用:s.reverseWords("this  is  a  blog "),得到的输出将是:”blog  a  is  this“,注意,这里每个Word中间都间隔有两个空格,但是如果取消掉注释语句,那得到的结果则是:”blog a is this“,这里每个Word之间都只间隔有一个空格的。

  这种情况让人有些疑惑,不知是否有大牛能够给些见解,怕自己以后忘记,先把问题摆在这里。。。

关于String的split方法的一点疑问,布布扣,bubuko.com

关于String的split方法的一点疑问

标签:style   blog   color   os   for   ar   问题   div   

原文地址:http://www.cnblogs.com/ch2009120504/p/3916087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!