(5)split函数结果与regex密切相关,常见的几种情况如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 public class SplitTest { public static void main ( String [ ] args ) { String str1 = "a-b" ; String str2 = "a-b-" ; String str3 = "-a-b" ; String str4 = "-a-b-" ; String str5 = "a" ; String str6 = "-" ; String str7 = "--" ; String str8 = "" ; split ( str1 ) ; split ( str2 ) ; split ( str3 ) ; split ( str4 ) ; split ( str5 ) ; split ( str6 ) ; split ( str7 ) ; split ( str8 ) ; } public static void split ( String demo ) { String [ ] array = demo . split ( "-" ) ; int len = array . length ; System . out . print ( "\"" + demo + "\" 分割后的长度为:" + len ) ; if ( len >= 0 ) { System . out . print ( ",分割后的结果为:" ) ; for ( int i = 0 ; i < len ; i ++ ) { System . out . print ( " \"" + array [ i ] + "\"" ) ; } } System . out . println ( ) ; } } 运行结果为: "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,分割后的结果为: "" 由此可以得出来: 当字符串只包含分隔符时,返回数组没有元素; 当字符串不包含分隔符时,返回数组只包含一个元素(该字符串本身); 字符串最尾部出现的分隔符可以看成不存在,不影响字符串的分隔; 字符串最前端出现的分隔符将分隔出一个空字符串以及剩下的部分的正常分隔;