首页 > 代码库 > 关于String的split方法的一点疑问
关于String的split方法的一点疑问
今天莫名其妙的又做了一下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之间都只间隔有一个空格的。
这种情况让人有些疑惑,不知是否有大牛能够给些见解,怕自己以后忘记,先把问题摆在这里。。。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。