A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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)

图二

图二

5 个回复

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

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
" " 中间加了空格的是以空白字符分割  
""  中间不加空格的是转义字符
回复 使用道具 举报
""的长度是零" "的长度是1
一个是空串,一个是空格的字符串
回复 使用道具 举报
嗯。""和" "的区别。
原来在""下会把字符串全部逐个切割,而" "就是按照单个空格切割了。
回复 使用道具 举报
很好!!(此回复虽然仅有两个字,却深刻地表达了回复人的深深情感,可谓言简意赅,一字千金,字字扣人心弦!再加上以感叹号收尾,点睛之笔,妙笔生花,意境之深远,令人回味无穷!)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马