【问题标题】:String.split not operating as expectedString.split 未按预期运行
【发布时间】:2012-10-23 01:37:17
【问题描述】:

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

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] = ""

【问题讨论】:

    标签: java string split token


    【解决方案1】:

    因为您在一行中有两个分隔符,一个空格后跟一个左括号,所以它将它们之间的“无”作为空字符串返回一个匹配项。您可以使用字符类而不是交替来匹配整个潜在分隔符块。您还没有说明您的实际要求,因此很难知道这是否对所有输入都严格正确。

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

    【讨论】:

    • 它有效,我会支持你,但我没有声誉,谢谢你的帮助。
    【解决方案2】:

    coded_string.split("(\\)|\\(|\\s+)+")会正常工作

    【讨论】:

    • 不是当你像 Affe 提到的那样连续有两个分隔符时,它会创建一个我试图避免的空白标记。
    • 最后的 '+' 连接分隔符,因此您不会得到空标记。
    猜你喜欢
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2020-06-28
    • 2012-02-18
    相关资源
    最近更新 更多