java -Sorting Strings,某种

时间:2014-01-26 16:41:51

标签: java arrays string sorting

基本上我有两个字符串数组。其中一个String包含一个数字,第二个字符串包含文本和数字。

我怎么能将这些匹配在一起呢?

示例:

private String[] StringArray1 = {"5648", "4216", "3254", "2541", "10"};
private String[] StringArray2 = {"Derp: 10", "Herp: 3254", "peter: 2541", "jdp: 4216", "dieter: 5648"};

输出应为:

dieter: 5648
jdp: 4216
Herp: 3254
peter: 2541
Derp: 10

好吧,我想要的只是为StringArray2排序值,所以它从最高点开始,然后我可以打印出来。

3 个答案:

答案 0 :(得分:0)

如果将第二个数组转换为MAP然后您可以轻松完成任务将会很好。键将是数字和值将是MAP中数组的文本

答案 1 :(得分:0)

使用HashMap

HashMap<String,String> hashMap = new HashMap<String,String>();
String[] string1 = {"5648", "4216", "3254", "2541", "10"};
String[] string2 = {"Derp: 10", "Herp: 3254", "peter: 2541", "jdp: 4216", "dieter: 5648"};
for (String str : string2)
{
    String[] keyVal = str.split(": ");
    hashMap.put(keyVal[1],keyVal[0]);
}
for (String key : string1)
{
    String val = hashMap.get(key);
    System.out.println(val+": "+key);
}

答案 2 :(得分:0)

使用Map是一个很好的解决方案。

例如:

Map<String, Integer> data = new HashMap<String, Integer>();
data.put("Herp", 3254);
data.put("peter", 2541);
//...

for (String name: data.keySet()) {
    System.out.println(name + ": " + data.get(name) );
}

是的,如果此数据是您的输入,请按照上一个答案中的说明收集地图。但如果可能的话,最初使用地图。