[英]Splitting a string into a list in Java
我正在尝试基于:,"{[ }]
将字符串拆分为列表:,"{[ }]
这是我的代码,
List<String> list = new ArrayList<String>(Arrays.asList(line.split("{ | } | \\"| : | [ | ]|,")));
哪个没有编译。 我不是真的很擅长正则表达式。 请帮忙。
您是说要在“看到:或,或“或{或[或}或]的任何时候”将其拆分吗?
.split("[:,\"{\\[ }\\]]")
即“在以下字符类定义中的任何字符上分割:,"{[ }]
”,在此我们使用标准的正则表达式字符类定义语法( [...]
)进行适当的转义。
通常,这意味着一个正则表达式看起来像/[:,"{\\[ }\\]]/
但是由于您是在普通字符串中编写一个正则表达式,因此需要更多的转义符: "
需要常规的字符串转义,因此您的字符串不需要t过早结束(因此变成\\"
),并且[
和]
在正则表达式中是活动字符,因此在正则表达式中它们需要在\\
之前。但是,我们不能只将\\
放在字符串中并使它起作用,因为\\
是转义字符,因此我们需要“转义转义”,这意味着使用\\\\
(给\\\\[
和\\\\]
)。
String[] result = "a:b,c\"d{e[f g}h]i".split("[:,\"{\\[ }\\]]");
System.out.print(result.length);
// => result has 9 elements in it, ['a',...,'i']
它不是编译的,因为您没有转引号,而是反斜杠本身。
更改:
\\"
至:
\"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.