用竖线字符(“ |”)分割字符串

我无法从此字符串拆分值:


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


这是我当前的代码:


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


宝慕林4294392
浏览 2404回答 3
3回答

幕布斯6054654

使用Pattern.quote()String[] value_split = rat_values.split(Pattern.quote("|"));//System.out.println(Arrays.toString(rat_values.split(Pattern.quote("|")))); //(FOR GETTING OUTPUT)使用转义符(用于元字符)String[] value_split = rat_values.split("\\|");//System.out.println(Arrays.toString(rat_values.split("\\|"))); //(FOR GETTING OUTPUT)使用StringTokenizer(避免正则表达式问题)public static String[] splitUsingTokenizer(String Subject, String Delimiters)&nbsp;{&nbsp; &nbsp; &nbsp;StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters);&nbsp; &nbsp; &nbsp;ArrayList<String> ArrLis = new ArrayList<String>(Subject.length());&nbsp; &nbsp; &nbsp;while(StrTkn.hasMoreTokens())&nbsp; &nbsp; &nbsp;{&nbsp; &nbsp; &nbsp; &nbsp;ArrLis.add(StrTkn.nextToken());&nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp;return ArrLis.toArray(new String[0]);}使用Pattern类(java.util.regex.Pattern)Arrays.asList(Pattern.compile("\\|").split(rat_values))//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)输出量[Food 1 ,&nbsp; Service 3 ,&nbsp; Atmosphere 3 ,&nbsp; Value for money 1 ]

沧海一幻觉

或.. Pattern#quote:String[] value_split = rat_values.split(Pattern.quote("|"));发生这种情况是因为String#split接受正则表达式:|在正则表达式中有特殊含义。quote将为regex返回String表示形式。
打开App,查看更多内容
随时随地看视频慕课网APP