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

时间:2011-07-13 17:03:53

标签: java string split

我有一个像|serialNo|checkDelta?|checkFuture?|checkThis?|这样的字符串。

现在我使用以下代码拆分字符串。

String[] splitString = str.split("|");

但是当我使用它时,我得到包含每个字符的字符串数组,而我需要包含serialNocheckDelta?checkFuture?,{{1}等字母的字符串}。

如何获得这些?我错过了什么吗?

3 个答案:

答案 0 :(得分:15)

你必须转义管道字符(split将正则表达式作为参数,因此“|”是control character):

str.split("\\|");

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

答案 1 :(得分:3)

您正在使用特殊角色,必须逃脱它:str.split("\\|");

答案 2 :(得分:0)

使用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 =的SerialNo

S2 = checkDelta?

S3 = checkFuture?

S4 = checkThis?

请参阅javadocs以了解有关StringTokenizer的信息

http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html