Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java String.split未按预期运行_Java_String_Split_Token - Fatal编程技术网

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提到的,它会创建一个空白的标记,我会尽量避免。最后的“+”会连接分隔符,所以你不会得到空的标记。