【发布时间】:2013-02-19 23:28:59
【问题描述】:
为什么下面的输出是[]而不是[1]?
String input="1|2|3";
String[] values= input.split("|");
System.out.println("[" + values[0] + "]");
// Output: []
但是,如果我们更改分隔符,则输出为[1]。
String input="1;2;3";
String[] values= input.split(";");
System.out.println("[" + values[0] + "]");
// Output: [1]
【问题讨论】:
-
split(String)采用“正则表达式字符串”,因此|被解释为“正则表达式或”,因此它不会拆分任何内容。您应该通过转义|并检查values的值来进行测试 -
它确实拆分了每个字符,加上一个初始的空字符串