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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廖成 中级黑马   /  2013-1-26 20:42  /  1236 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-1-27 13:40 编辑

在这段代码中:
  1.     public class Split {  
  2.       
  3.         public static void main(String[] args) {  
  4.             String str1 = "a-b";         
  5.             String str2 = "a-b-";  
  6.             String str3 = "-a-b";  
  7.             String str4 = "-a-b-";  
  8.             String str5 = "a";  
  9.             String str6 = "-";  
  10.             String str7 = "--";  
  11.             String str8 = "";   //等同于new String()  
  12.               
  13.             getSplitLen(str1);  
  14.             getSplitLen(str2);  
  15.             getSplitLen(str3);  
  16.             getSplitLen(str4);  
  17.             getSplitLen(str5);  
  18.             getSplitLen(str6);  
  19.             getSplitLen(str7);  
  20.             getSplitLen(str8);  
  21.         }  
  22.          
  23.         public static void getSplitLen(String demo){  
  24.             String[] array = demo.split("-");  
  25.             int len = array.length;  
  26.             System.out.print("\"" + demo + "\"长度为:" + len);  
  27.             if(len >= 0){  
  28.                 for(int i=0; i<len; i++){  
  29.                     System.out.print(" \""+array[i]+"\"");  
  30.                 }            
  31.             }  
  32.             System.out.println();  
  33.         }  
  34.       
  35.     }  
复制代码
为什么打印结果是:
"a-b"长度为:2 "a" "b"
"a-b-"长度为:2 "a" "b"
"-a-b"长度为:3 "" "a" "b"
"-a-b-"长度为:3 "" "a" "b"
"a"长度为:1 "a"
"-"长度为:0
"--"长度为:0
""长度为:1 ""


谢谢。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
split 方法:该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
"a-b"长度为:2 "a" "b"//去掉-只有a,b=2
"a-b-"长度为:2 "a" "b"//去掉-只有a,b=2,末尾不算
"-a-b"长度为:3 "" "a" "b"//去掉-只有a,b和开头的空串""3个
"-a-b-"长度为:3 "" "a" "b"//去掉-只有a,b和开头的空串""3个
"a"长度为:1 "a"//没有-只有a1个
"-"长度为:0//本来-只有-去掉就没有了0
"--"长度为:0//本来-只有-去掉就没有了0
""长度为:1 ""//本来没有-只有空串""长度0
希望帮到你

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
当字符串的第一个字符匹配正则表达式时,开头会产生一个空串,
最后一个字符匹配时,也会产生一个空串。不过,该方法规定,
最后的空串会被舍弃。所以“-”是0,“--”也是0(空串全被扔了)
而""因为不匹配,所以还是原来的空串,所以为1。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马