首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用竖线字符("|")拆分字符串

使用竖线字符("|")拆分字符串
EN

Stack Overflow用户
提问于 2014-02-03 18:19:03
回答 5查看 258.3K关注 0票数 274

我不能从这个字符串中拆分值:

"Food 1 | Service 3 | Atmosphere 3 | Value for money 1 "

下面是我当前的代码:

代码语言:javascript
复制
String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
String[] value_split = rat_values.split("|");

输出

,f,o,o,d,,1,,|,,S,e,r,V,i,c,e,,3,,|,,a,t,m,o,s,p,h,e,r,e,3,|,,v,A,l,u,e,F,o,r,m,o,n,e,y,,1,

预期输出

食品1

服务3

大气3

物有所值1

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-03 18:20:24

|是正则表达式中的元字符。你需要避开它:

代码语言:javascript
复制
String[] value_split = rat_values.split("\\|");
票数 618
EN

Stack Overflow用户

发布于 2014-02-03 18:27:28

使用Pattern.quote()

代码语言:javascript
复制
String[] value_split = rat_values.split(Pattern.quote("|"));

//System.out.println(Arrays.toString(rat_values.split(Pattern.quote("|")))); //(FOR GETTING OUTPUT)

使用转义字符(用于元字符)

代码语言:javascript
复制
String[] value_split = rat_values.split("\\|");
//System.out.println(Arrays.toString(rat_values.split("\\|"))); //(FOR GETTING OUTPUT)

使用StringTokenizer(用于避免正则表达式问题)

代码语言:javascript
复制
public static String[] splitUsingTokenizer(String Subject, String Delimiters) 
{
     StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters);
     ArrayList<String> ArrLis = new ArrayList<String>(Subject.length());
     while(StrTkn.hasMoreTokens())
     {
       ArrLis.add(StrTkn.nextToken());
     }
     return ArrLis.toArray(new String[0]);
}

使用模式类(java.util.regex.Pattern)

代码语言:javascript
复制
Arrays.asList(Pattern.compile("\\|").split(rat_values))
//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)

输出

代码语言:javascript
复制
[Food 1 ,  Service 3 ,  Atmosphere 3 ,  Value for money 1 ]
票数 84
EN

Stack Overflow用户

发布于 2014-02-03 18:21:13

或者..。Pattern#quote

代码语言:javascript
复制
String[] value_split = rat_values.split(Pattern.quote("|"));

之所以发生这种情况,是因为String#split接受正则表达式

|有一个special meaning in regex

quote将返回正则表达式的字符串表示。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21524642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档