繁体   English   中英

用Java将字符串拆分为列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM