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 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。
ibeautiful
慕雪6442864