split("\\|")对于空字符串,为什么是1
split("\\|")对于空字符串,为什么是1,
是使用不当吗?比如"".split("\\|").length是1.
[解决办法]
String[] strs=" |asdf".split("\\|"); System.out.println(strs.length); System.out.println(strs[0].equals("")); System.out.println(strs[1]);//事实胜于雄辩。2trueasdf
[解决办法]
public class TestSpilt { public static void main(String[] args){ String str=""; System.out.println(str.split("\\|").length);//输出1 } }
[解决办法]
public String[] split(CharSequence input, int limit) { int index = 0; boolean matchLimited = limit > 0; ArrayList<String> matchList = new ArrayList<String>(); Matcher m = matcher(input); // Add segments before each match found while(m.find()) { if (!matchLimited || matchList.size() < limit - 1) { String match = input.subSequence(index, m.start()).toString(); matchList.add(match); index = m.end(); } else if (matchList.size() == limit - 1) { // last one String match = input.subSequence(index, input.length()).toString(); matchList.add(match); index = m.end(); } } // If no match was found, return this if (index == 0) return new String[] {input.toString()};