我有这个字符串:
"Dairy products","LAI","249","SMP","Skimmed milk powder, Intervention Quality - Lait écrémé en poudre","€/100 kg","EU","201906","204.05"
我用逗号分隔它
data = line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
if (data.length == meta.size()) {
products.add(new Prodotti(
data[0],
data[1],
Integer.parseInt(data[2]),
data[3],
data[4],
data[5],
data[6],
Integer.parseInt(data[7]),
Double.parseDouble(data[8])
));
} else {
System.out.println(meta.get(data.length));
}
这是data[4]
包含的内容:
""Skimmed milk powder, Intervention Quality - Lait écrémé en poudre""
我不知道这个结果是错误还是正确,而且当我在 JSON 上打印它时,它看起来像这样:
"\"Skimmed milk powder, Intervention Quality - Lait écrémé en poudre\""
最佳答案
如果我要这样做,我会将 ","
替换为 "#"
并在 #
上进行拆分。它可能不优雅,但可以避免一些麻烦。您可以选择不在引用字段内的其他内容,而不是 #
。
String str =
"\"Dairy products\",\"LAI\",\"249\",\"SMP\",\"Skimmed milk powder,
Intervention Quality - Lait écrémé en poudre\",\"€/100
kg\",\"EU\",\"201906\",\"204.05\"";
String[] substr = str.replaceAll("\",\"", "\"#\"").split("#");
for (String s : substr) {
System.out.println(s);
}
}
上面的打印结果与通常引用的字符串的预期相同。由于字符重音,JSON 可能做了一些特殊的事情。
关于java - 在双引号内分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059786/