Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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中拆分|(管道)上的字符串_Java_String_Split - Fatal编程技术网

如何在Java中拆分|(管道)上的字符串

如何在Java中拆分|(管道)上的字符串,java,string,split,Java,String,Split,我有一个类似于| serialNo | checkDelta | checkFuture | checkThis |的字符串 现在我使用下面的代码来拆分字符串 String[]splitString=str.split | 但当我使用它时,我会得到一个包含每个字符的字符串数组,而我需要一个包含像serialNo,checkDelta?,checkFuture?,checkthis?这样的字母的字符串 如何得到这些?我遗漏了什么吗?你必须转义你的管道字符以正则表达式作为参数,因此|是: 请注意:结

我有一个类似于| serialNo | checkDelta | checkFuture | checkThis |的字符串

现在我使用下面的代码来拆分字符串

String[]splitString=str.split |

但当我使用它时,我会得到一个包含每个字符的字符串数组,而我需要一个包含像serialNo,checkDelta?,checkFuture?,checkthis?这样的字母的字符串


如何得到这些?我遗漏了什么吗?

你必须转义你的管道字符以正则表达式作为参数,因此|是:


请注意:结果数组的开头包含一个空字符串,因为字符串的开头有|。

您使用的是一个特殊字符,必须对其进行转义:str.split\\\|

使用StringTokenizer

String str="|serialNo|checkDelta?|checkFuture?|checkThis?|"
StringTokenizer st=new StringTokenizer(str,"|",false);
String s1 = st.nextToken();
String s2 = st.nextToken();
String s3 = st.nextToken();
String s4 = st.nextToken();
s1=序列号

s2=校验增量

s3=检查未来

s4=检查这个

有关StringTokenizer的阅读,请参阅javadocs


+1注意,Metion的一个好消息等价正则表达式的另一种语法是:[|]-管道在字符类中失去了它的意义。
String str="|serialNo|checkDelta?|checkFuture?|checkThis?|"
StringTokenizer st=new StringTokenizer(str,"|",false);
String s1 = st.nextToken();
String s2 = st.nextToken();
String s3 = st.nextToken();
String s4 = st.nextToken();