Ответ 1
|
является метасимволом в регулярном выражении. Вам нужно будет избежать этого:
String[] value_split = rat_values.split("\\|");
Я не могу разбить значения из этой строки:
"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
|
является метасимволом в регулярном выражении. Вам нужно будет избежать этого:
String[] value_split = rat_values.split("\\|");
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)
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]);
}
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 ]
Или.. Pattern#quote
:
String[] value_split = rat_values.split(Pattern.quote("|"));
Это происходит потому, что String#split
принимает регулярное выражение:
|
имеет особое значение в регулярном выражении.
quote
вернет представление String для регулярного выражения.
split принимает регулярное выражение как параметр. |
имеет особое значение в regex.. используйте \\|
вместо |
, чтобы избежать его.
String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
String[] value_split = rat_values.split("\\|");
for (String string : value_split) {
System.out.println(string);
}