【发布时间】:2019-03-30 06:48:44
【问题描述】:
我最近遇到了这个问题,不知道如何解决。我知道在 String 类中,我们有 split 方法,它接受一个正则表达式,并基于该正则表达式,将给定的字符串拆分为不同的字符串并在字符串数组中返回。
例如,如果我有,
String s = "A,B,C";
我愿意,
System.out.println(Arrays.toString(s.split(",")));
它将打印 [A, B, C] 到输出控制台。
现在假设我的字符串是
String s = "A,\"\"B\"\",\"\"C\"\",D"; //easier to read version: A,""B"",""C"",D
我使用下面的正则表达式来分割字符串,
String regex = ",|,\"\"|\"\",|\"\",\"\""; // matches , OR ,"" OR "", OR "",""
System.out.println(Arrays.toString(s.split(regex)));
我得到的输出是 [A, ""B, ""C, D]。这里的分裂如何?以及如何定义我的正则表达式以便得到 [A, B, C, D] 作为我的输出?
注意:我知道我想要实现的目标可以通过其他方式完成(比如 replaceAll 方法),但我只想使用 String.split 来解决这个问题,因为我想知道在这种情况下如何使用它.
【问题讨论】: