【发布时间】:2015-01-23 16:22:11
【问题描述】:
我有一个关于地图的问题,类型为 Integer,Integer。我通过解决基于<String,String> 上的<Integer,Integer> 映射的问题犯了一个错误,最终结果是正确的,但是数字的顺序不是降序的。如果我选择Integer 而不是Strings,这将得到解决。
当它是Map<Integer, Integer> 时,我如何从用户那里获取输入并将其分配给我的地图的键/值?我使用substring() 和indexOf() 制作了我的旧地图,但对于整数我找不到方法
import java.util.*;
import java.io.*;
import type.lib.*;
public class MapTesting {
public static void main(String[] args) {
PrintStream output = new PrintStream(System.out);
Scanner input = new Scanner(System.in);
Map<String,String> normal = new HashMap<String,String>();
output.println("Enter your map, one key-value pair per line,");
output.println("comma-separated. Use empty line as sentinel.");
for ( String entry = input.nextLine(); entry.length() !=0;
entry = input.nextLine()) {
int comma = entry.indexOf(",");
String key = entry.substring(0,comma);
String value = entry.substring(comma+1);
normal.put(key,value);
}
output.println("The input map is:");
output.println(normal);
Map<String,String> reverse = new HashMap<String,String>();
boolean distinct = true;
for (Map.Entry<String,String> entry : normal.entrySet()) {
String keyY = entry.getKey();
String valueE = entry.getValue();
String existingReverseValue = reverse.get(valueE);
if (existingReverseValue != null) {
int currentValue = Integer.parseInt(existingReverseValue);
int potentialNewValue = Integer.parseInt(keyY);
if ( potentialNewValue < currentValue) {
reverse.put(valueE,keyY);
}
} else {
reverse.put(valueE,keyY);
}
}
output.println("The inverted map [using the smaller key as a tie breaker]:");
output.println(reverse);
}
}
【问题讨论】:
-
假设这些字符串是您希望从输入中得到的正确表示,像
int keyInt = Integer.valueOf(key)这样简单的东西将得到字符串表示的数字的整数。 -
@NoseKnowsAll 我不想得到由字符串表示的数字,我想知道是否有办法使用 Map
使用相同的方法制作这个程序用字符串做了..更具体地说,我如何从用户那里获取键/值,正如你所看到的,我可以通过 substring() 和 indexOf() 轻松地做到这一点,我可以找到用户输入的内容..跨度> -
所有用户输入被读取为
String或单个byte。如果您通过byte阅读byte,那么祝您好运。如果您通过String阅读String,那么您需要将String转换为Integer,并根据您的需要/需要使用此Integer,在这种情况下,这似乎是您的关键和价值Map. -
@NoseKnowsAll 评论应该是答案。
-
@TJamesBoone 上帝保佑你的灵魂,它完美运行,我不知道我可以使用字符串定位然后解析成整数..这对我来说太先进了,但它有效!
标签: java string map hashmap integer