私は特定の形式で来ている文字列を持っているので、その文字列をマップに解析したい。私は、文字列をMapに解析する以下のメソッドを持っており、正常に動作します。文字列のフォーマットされた文字列を同じキーを何度も持つマップに解析しますか?
public static Map<String, String> parseStringToMap(String payload) {
try {
return Maps.newHashMap(Splitter.on("|").withKeyValueSeparator("=").split(payload));
} catch (Exception ex) {
return ImmutableMap.of();
}
}
サンプル例:
"type=3|Id=23456|user=13456"
は今、時々私は、同じ文字列に同じ値で二回同じキーを持って、その後、私の上記の方法が失敗し、それが例外をスローします。たとえば、以下の文字列の場合、それは機能しませんし、失敗し、
type
キーが2回あるため空のマップを返します。
"type=3|Id=23456|user=13456|type=3"
文字列のペイロードを修正する代わりに、これを修正するにはどうすればよいですか?だから、同じキーが何度も来たら、失敗してしまうのではなく、そのキー値をマップに上書きするとしましょう。そして私はMutableマップを戻したいと思います。
私はまだJava 7で作業していますが、これを行うにはどのような方法が最適ですか?
あなたは、Java 8を使用することができますか?その場合は、グループ化コレクタを使用して、 'Map '、またはそれに類するものを構築することができます。 –
@AndyTurner残念ながら、まだJava 7を使用しており、まだJava 8を使用することはできません。 – user1950349