1
temp = line.split(",");
if (i < paymentFieldsMapIndex.size()) {
    paymentFields.put(paymentFieldsMap.get(next).toString(), temp[i]);
}

此代码将逗号分隔的字符串拆分为子字符串,并使用生成的子字符串填充 HashMap 值。

一些子字符串值在生成的 HashMap 中看起来很有趣,看起来这是由于令牌中存在逗号。

例如

,“伦敦,英国”,

在字符串中出现在 HashMap 之类的

键=键,值=“伦敦

我认为 String split() 不会分解包含定界符的子字符串,如果它们用双引号引起来?

我也尝试过转义嵌入式逗号

,“伦敦,英国”,

但 HashMap 中的字符串看起来像

键=键,值=“伦敦\

我错过了什么,或者有什么办法可以解决这个问题?谢谢。

4

1 回答 1

7

“我认为 String split() 不会分解包含定界符的子字符串,如果它们用双引号引起来?”

您在这里的假设是不正确的。split()除了你传递的正则表达式之外,什么都不关心。

如果您需要在尊重引号的同时将其拆分,有很多方法可以实现

于 2012-07-20T16:51:19.010 回答