问题补充说明:public String[] split(String regex, int limit)这个方法 API举了一个例子:对于字符串 "boo:and:foo",regex为o,limit为5时,返回:{ "b", "", ":and:f", "", "" } 我的问题是:"boo:and:foo"在"b"后面有2个o,在"f"后面也有2个o,应该都能匹配2次,但是为什么结果中"b"后面只有一个空串,在f后面有两个空串,空串是怎么产生的? 我在做编译器,这个方法很关键,急需各位的帮助. API上的关于这个方法的说明是: 根据匹配给定的正则表达式来拆分此字符串。 此方法返回的数组包含此字符串的每个子字符串,这些子字符串由另一个匹配给定的表达式的子字符串终止或由字符串结束来终止。数组中的子字符串按它们在此字符串中的顺序排列。如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串。 limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果 n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。
split方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator],[limit])
参数:stringOb360问答j必选项。要被分解的String对象或文字。该对象不会被split方法修改。
separator可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽
略该选项,返回包含整个温重雷字符串的单一元素兵完阶食破话数组。limit可选项。该值用来限制返回数组中的元素个数。
说明:split方法的结果是一个字符串数组,在定伯的响stingObj中每个出现separator的位置都要进行分解。元宽目separator不作为任何数组元素的部分返回。
split的实现直接调用的matcher类的split的方法。“.”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义"\\."
如果用竖线“|”分隔的话,将出现不可得到的结果,必须改为“\\|”
,+判争被煤族额底主副*不是有效的模式匹配规则表达式,用"//*""//+"转义后即可得到正确的结果。
实例:
publicclassStringSplit{
publicstaticvoidmain(局尼移今候时守须宽把String[]args)throwsExcepti料控满帮on{
StringoriginalString=newString("5有待队补让适,8,6,9,12,56,3");
String[]destString=originalString.split(",");
for(inti=0;i<destString.length;i++)
System.out写刑府服取证试.print(destString[i]+"");
System.ou坚t.println();
Stringoriginal=newString("abc,ef,bdj,983,r56,34u");
String[]dest=original.split(",",3);
for(inti=0;i<dest.length;i++)
System.out.println(dest[i]);
System左绿规紧早.out.println();
Strings=newString("01:大汽车");
Stringa[]=s.split(":");
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(成);
Stringstr="1one123two456obc";
String[]strs2=str.split("o");
for(inti=0;i<strs2.length;i++)
System.out.println("strs2["+i+"]="+strs2[i]);
Stringvalue="192.168.128.33";
String[]names=value.split("\\.");
for(inti=0;i<names.length;i++检)
System.out.println(names[i]);
Stringvalue2="ABCD|568|ER5|54P";
String[]names2=value2.split("\\|");
for(inti=0;i<names2.length;i++)
System.out.println(names2[i]);
}
}
标签:城鱼斤,记移,思动