Java String.split未按预期运行
所以我试着分开一根线Java String.split未按预期运行,java,string,split,token,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)括号之间有空格时,我会得到空
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] = ""
因为一行中有两个分隔符,一个空格后跟一个打开的paren,所以它会将它们之间的“nothing”作为空字符串返回匹配项。您可以使用字符类而不是交替来匹配潜在分隔符字符的整个块。您还没有说明您的实际需求,因此很难知道这是否对所有输入都严格正确
String[] tokens = coded_string.split("[)(,\\s]+");
coded\u string.split(“(\\)\\\(\\\\\\s+”)
会很好的我会给你投票,但是我没有这个名声,谢谢你的帮助。如果你在一行中有两个分隔符,就像Affe提到的,它会创建一个空白的标记,我会尽量避免。最后的“+”会连接分隔符,所以你不会得到空的标记。