我不能从这个字符串中分割值:
“食物1 |服务3 |氛围3 |物有所值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 , , |, , 年代,e, r, v, i, c, e, 3 , , |, , A t m, o s, p, h, e r e, 3 , , |, , V, l, u, e, f, o, r、m o, n, e, y,, 1,)
预期的输出
食物1
服务3
大气3
物有所值1
使用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)
{
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. regx .Pattern)
Arrays.asList(Pattern.compile("\\|").split(rat_values))
//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)
输出
[Food 1 , Service 3 , Atmosphere 3 , Value for money 1 ]