String.split未按预期运行

时间:2012-10-23 01:37:17

标签: java string split token

所以我正在尝试拆分字符串

String[] tokens = coded_string.split("\\)|\\(|\\,|\\s+");

所以如果编码的字符串是students = load(classlist.csv) 所有代币都很好

token[0] = "students"
token[1] = "="
token[2] = "load"
token[3] = "classlist.csv"

但是当括号之间的字符串students = load ( classlist.csv )空格我得到空标记时为什么会这样,我该如何解决它?

token[0] = "students"
token[1] = "="
token[2] = "load"
token[3] = ""

2 个答案:

答案 0 :(得分:3)

因为你有一个连续的两个分隔符,一个空格后跟一个打开的paren,它会在它们之间的'nothing'上返回一个匹配的空字符串。您可以使用字符类而不是替换来匹配整个潜在分隔符字符块。您尚未说明您的实际要求,因此很难知道这对所有输入是否严格正确。

String[] tokens = coded_string.split("[)(,\\s]+");

答案 1 :(得分:0)

coded_string.split("(\\)|\\(|\\s+)+")可以正常使用