私はので、私はカンマ,
に分割し、キーと0
その値としてcossn
をロードする必要が(Map<String, String>)
key=value
としてマップにそれをロードする必要key1=value1, key2=value2
のフォーマットである文字列の下に持っています。区切り文字で文字列を解析し、マップにロードしますか?
String payload = "cossn=0, abc=hello/=world, Agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36";
HashMap<String, String> holder = new HashMap();
String[] keyVals = payload.split(", ");
for(String keyVal:keyVals) {
String[] parts = keyVal.split("=",2);
holder.put(parts[0], parts[1]);
}
私はこのラインholder.put(parts[0], parts[1]);
でjava.lang.ArrayIndexOutOfBoundsException
を取得していますし、それは価値KHTML, like Gecko
に余分なコンマを持っているので、それがこのString Agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
のbcoz起こっています。
どうすればこの問題を解決できますか?一般的に、以下は私のキーと値が地図にロードされた後でなければなりません。
Key Value
cossn 0
abc hello/=world
Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
いつも4つのカンマがありますか? – UDKOX
これは単なるサンプル文字列です。一般に、それは非常に長い文字列であり、コンテンツはほとんどの場合変更されます。 – user1950349
入力のフォーマットを定義することはできますか?これは固定ですか? – Vampire