我有一段代码将一个字符串拆分为String数组。由于引号包含在字符串中,因此无法使用逗号进行拆分。
正则表达式是我的代码的一部分,因此我无法删除整个正则表达式,我能做的就是将其扩展
String lines = "70001223,fjdhsd,jahd\",37874,dfhjkd,jadhj";
String columns [] = lines.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1);
for(int i = 0; i < columns.length; i++){
System.out.println(columns[i]);
}
70001223,fjdhsd,**jahd"**
37874
dfhjkd
jadhj
这是实际结果,但是我想要的实际结果是
70001223,
fjdhsd,
**jahd"**
37874
dfhjkd
jadhj
查看引起quote(“)引起问题的区别。
答案 0 :(得分:1)
不能完全理解输出,就像某些行的逗号和***确实显示在原始字符串中一样。
也许是这样吗?
公共类RegexQuestion {
public static void main(String[] args) {
String lines = "70001223,fjdhsd,***jahd***\",37874,dfhjkd,jadhj";
String newLine = lines.replace("\"", "");
String[] columns = newLine.split(",");
for (String column : columns) System.out.println(column);
}
}