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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. class MyComparator implements Comparator<String>
  2. {
  3.         public int compare(String s1,String s2)
  4.         {

  5.                 String[] str1=s1.split("\\.");
  6.                 String[] str2=s2.split("\\.");

  7.                 for(int i=0;i<str1.length;i++)
  8.                 {
  9.                         int in1=Integer.parseInt(str1[i]);
  10.                         int in2=Integer.parseInt(str2[i]);
  11.                        
  12.                         int x=in1-in2;
  13.                         if(x!=0)
  14.                         {
  15.                                 return x;
  16.                         }
  17.                 }
  18.                 return 0;
  19.         }
  20. }
复制代码


以上是自己写的ip排序代码,有两个疑问:
1、"\\."和"."只有前者出正确结果,之前做的一个代码逗号分割的时候两种情况都对
2、我在if(x!=0)执行后加了else continue他会回到循环处,但是我不加按理说计算机没得到x=0怎么处理的指令应该会报错,但是没有报错,而且一切正常。什么时候计算机默认空处理,什么时候必须处理?

2 个回复

倒序浏览
1.String 的split接收的是一个正则表达式,在正则里面 . 表示任意字符,那就是说你按任意字符切割的,当然不对
2.循环里面你加了if判断,如果条件不成立会再循环,直到循环条件满足
回复 使用道具 举报
godmmm 发表于 2015-1-10 21:16
1.String 的split接收的是一个正则表达式,在正则里面 . 表示任意字符,那就是说你按任意字符切割的,当然 ...

哦,明白了,看来还得看视频,正则这个东西没看到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马