如何在 | 上拆分字符串Java中的(管道)[重复]
Posted
技术标签:
【中文标题】如何在 | 上拆分字符串Java中的(管道)[重复]【英文标题】:How to split a string on | (pipe) in Java [duplicate] 【发布时间】:2011-10-04 16:38:20 【问题描述】:我有一个类似|serialNo|checkDelta?|checkFuture?|checkThis?|
的字符串。
现在我使用下面的代码来分割字符串。
String[] splitString = str.split("|");
但是当我使用它时,我得到包含每个字符的字符串数组,而我需要包含 serialNo
、checkDelta?
、checkFuture?
、checkthis?
等字母的字符串。
如何获得这些?我错过了什么吗?
【问题讨论】:
【参考方案1】:您必须转义管道字符(split 将正则表达式作为参数,因此“|”是 control character):
str.split("\\|");
请注意:结果数组的开头包含一个空字符串,因为您有“|”在字符串的开头。
【讨论】:
+1 表示要提到的好东西 等价正则表达式的另一种语法是:"[|]"
-- 管道在字符类中失去了意义。【参考方案2】:
使用 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=checkDelta?
s3=checkFuture?
s4=checkThis?
请参阅 javadocs 以了解有关 StringTokenizer 的信息
http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html
【讨论】:
【参考方案3】:您正在使用一个特殊字符,必须对其进行转义:str.split("\\|");
【讨论】:
以上是关于如何在 | 上拆分字符串Java中的(管道)[重复]的主要内容,如果未能解决你的问题,请参考以下文章