Java 我已经编写了这段代码,但它确实输出了与sam键值对关联的值?请告诉我如何获得山姆的价值? publicstaticvoidmain(字符串[]argh){ Map myMap=newhashmap(); 扫描仪输入=新扫描仪(系统输入); int n=in.nextInt(); String name=“sam”; int phone=0; 对于(int i=0;i

Java 我已经编写了这段代码,但它确实输出了与sam键值对关联的值?请告诉我如何获得山姆的价值? publicstaticvoidmain(字符串[]argh){ Map myMap=newhashmap(); 扫描仪输入=新扫描仪(系统输入); int n=in.nextInt(); String name=“sam”; int phone=0; 对于(int i=0;i,java,Java,我已经编写了这段代码,但它确实输出了与sam键值对关联的值 请告诉我如何获得sam的价值?此处: public static void main(String[] argh) { Map<String, Integer> myMap = new HashMap<String, Integer>(); Scanner in = new Scanner(System.in); int n = in.nextInt(); String name = "sam";

我已经编写了这段代码,但它确实输出了与sam键值对关联的值

请告诉我如何获得sam的价值?

此处:

public static void main(String[] argh) {
  Map<String, Integer> myMap = new HashMap<String, Integer>();
  Scanner in = new Scanner(System.in);
  int n = in.nextInt();
  String name = "sam";
  int phone = 0;
  for (int i = 0; i < n; i++) {
    name = in.next();
    phone = in.nextInt();
    myMap.put(name, phone);

    while (in.hasNext()) {
      String s = in.next();
      if (myMap.containsKey(s)) {
        System.out.println(name + "=" + phone);
      } else {
        System.out.println("Not found");
      }
    }
    in.close();
  }
}
您正在检查地图是否包含
s
键,然后打印
name
phone
变量中的任何内容

而是实际获取与
s
关联的电话号码:

    if(myMap.containsKey(s)){
        System.out.println(name+"="+ phone );
    }

欢迎来到堆栈溢出!看起来您需要学习使用调试器。请随便吃点。如果你以后还有问题,请随时回答一个更具体的问题。你到底想实现什么?你的输入是什么?3 sam 99912222 tom 1112222 harry 12299933 sam edward harry为什么要输入多个姓名电话对,尽管你的代码显然在输入第一对后立即搜索姓名?谢谢,我知道了,这就是为什么它总是显示出来的原因harry作为输出
    if(myMap.containsKey(s)){
        System.out.println(s+"="+ myMap.get(s) );
    }