黑马程序员技术交流社区

标题: 关于空字符串没弄明白,""与" " [打印本页]

作者: 龚振 龚振 龚振    时间: 2012-4-6 19:44
标题: 关于空字符串没弄明白,""与" "
本帖最后由 klas2008 于 2012-4-6 19:43 编辑

day25中,这里是将String中四个ip地址按照自然顺序的ip地址段进行排序。
  1. public static void ipSort(){
  2.                 String ip = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";
  3.                
  4.                 ip = ip.replaceAll("(\\d+)","00$1");
  5.                 System.out.println(ip);
  6.                
  7.                 ip = ip.replaceAll("0*(\\d{3})","$1");
  8.                 System.out.println(ip);
  9.                
  10.                 String[] arr = ip.split("");
  11.                                              
  12.                 TreeSet<String> ts = new TreeSet<String>();//有排序
  13.                
  14.                 for(String s : arr){
  15.                         ts.add(s);
  16.                 }
  17.                
  18.                 for(String s : ts){
  19.                         System.out.println(s);//.replaceAll("0*(\\d+)","$1")
  20.                 }
复制代码
如上,在第10行如果是" "的话结果为图一
如果我直接写了"",结果成了图二,我想问的是第二种情况是怎么个切割方法呢?

图一.jpg (7.96 KB, 下载次数: 58)

图一

图一

图二.jpg (2.22 KB, 下载次数: 49)

图二

图二

作者: τ、高童鞋ゝ    时间: 2012-4-6 19:58
分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"\\",如split(\\|);
如果用"\"作为分隔,就得写成这样:String.split("\\\\"),因为在Java中是用"\\"来表示"\"的,字符串得写成这样:String Str="a\\b\\c";
转义字符,必须得加"\\";
如果在一个字符串中有多个分隔符,可以用"|"作为连字符,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开;


作者: τ、高童鞋ゝ    时间: 2012-4-6 20:19
" " 中间加了空格的是以空白字符分割  
""  中间不加空格的是转义字符
作者: τ、高童鞋ゝ    时间: 2012-4-6 21:31
""的长度是零" "的长度是1
一个是空串,一个是空格的字符串

作者: 龚振 龚振 龚振    时间: 2012-4-7 00:59
嗯。""和" "的区别。
原来在""下会把字符串全部逐个切割,而" "就是按照单个空格切割了。
作者: pray    时间: 2014-4-26 03:23
很好!!(此回复虽然仅有两个字,却深刻地表达了回复人的深深情感,可谓言简意赅,一字千金,字字扣人心弦!再加上以感叹号收尾,点睛之笔,妙笔生花,意境之深远,令人回味无穷!)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2