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

このコードは、カンマ区切りの文字列を部分文字列に分割し、結果の部分文字列を使用して HashMap 値を設定します。

一部の部分文字列値は、結果の HashMap でおかしく見えます。これは、トークンにコンマが存在することが原因のようです。

例えば

、"イギリスのロンドン"、

文字列内の HashMap のように表示されます

キー = キー、値 = "LONDON

String split() は、二重引用符で囲まれている場合、区切り文字を含む部分文字列を分割しないと思いましたか?

また、埋め込まれたコンマを次のようにエスケープしようとしました

、"イギリスのロンドン"、

しかし、HashMap の文字列は次のようになります

キー = キー、値 = "LONDON\

何か不足していますか、またはこの問題を回避する方法はありますか? ありがとう。

4

1 に答える 1

7

「String split() は、二重引用符で囲まれている場合、区切り文字を含む部分文字列を分割しないと思いましたか?」

ここでのあなたの推測は正しくありません。split()渡す正規表現以外は気にしません。

引用符を尊重しながら分割する必要がある場合は、それを実現する方法がたくさんあります

于 2012-07-20T16:51:19.010 に答える