java - 如何将其解析为多值映射?

标签 java arrays parsing

我有一个字符串 名称,5486984,189.658.235.215,3.158.68.15,name2,189189,189.658.218.268,3.158.68.13...

等等

我想将其放入 map 中,但我不完全确定。我正在查看具有多值映射的 Apache Commons Collection 库。即使我使用它,我也不确定如何解析这个 StringArray 。

编辑:

感谢您的回复。我的总体目标是让该字符串显示在 JSF 下拉列表中。 我有

<f:selectItems itemValue="#{mainBean.information}" value="#mainBean.information}" />

在我的Java中我有

Private String [] information;
information = config.getStringArray("information"); // This brings in this string from the property file

我一直在引用这个 http://www.horstmann.com/corejsf/refcard.html

因此,我刚刚发布了这里的内容。它将填充该字符串数组的每个元素。我只希望显示“名称”,并将其他三个值作为实际“值”传递。

我想我可能需要提出一个新问题。

我尝试创建一个由字符串和字符串数组组成的 Map 对象,但 JSF 拒绝接受它。

这是新问题: JSF I need to populate selectItems with a StringArray but I need to parse it first

最佳答案

由于您使用 Apache Commons 进行多重映射,并且您知道有四个值:

MultiMap map = new MultiHashMap();    
String[] elements = source.split(",");

// process the elements in groups of four
for (int keyIndex = 0; keyIndex < elements.length; keyIndex += 4) {
  String key = elements[keyIndex];
  map.put(key, elements[keyIndex+1]);
  map.put(key, elements[keyIndex+2]);
  map.put(key, elements[keyIndex+3]);
}

最后,您会得到一个 MultiMap,每个键包含三个元素。您当然应该对数据进行一些健全性检查,但基本思想如上所述。

关于java - 如何将其解析为多值映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916993/

相关文章:

python - 解析键=值列表,其中空格具有双重含义(分隔符和val的一部分)

java - Eclipse:许多类文件

java - 简化条件逻辑以提高可读性

java - slf4j/logback - 某些线程的不同日志级别

arrays - 如何为可变大小的数组编写大量 if 语句

c# - 循环逗号分隔的字符串,分成多个数组?

python - 正则表达式匹配 - Python - 任意数量的字符

java - ArrayList 内容意外修改

javascript - 按键值对数组排序

java - 使用 java.text.SimpleDateFormat 以可能的单位数月/日/小时解析日期