【问题标题】:Java hashtable, with a while loopJava 哈希表,带有一个 while 循环
【发布时间】:2015-06-10 06:51:03
【问题描述】:

这是我需要的,也是我得到的。 将数字 3 到 10 添加到哈希表 提示用户输入字符串,并显示相应的数字。 使用循环和单个 println 语句,显示表中的所有值(字符串和整数)。 我的主要问题是我不确定如何处理 while 循环。我只使用过一次while循环。

import java.util.*; 
class HTDemo {
    public static void main(String args[]) {
        Hashtable<String, Integer> numbers = new
                Hashtable<String, Integer>();

        numbers.put("one", new Integer(1));
        numbers.put("two", new Integer(2));
        numbers.put("three", new Integer(3));
        numbers.put("four", new Integer(4));
        numbers.put("five", new Integer(5));
        numbers.put("six", new Integer(6));
        numbers.put("seven", new Integer(7));
        numbers.put("eight", new Integer(8));
        numbers.put("nine", new Integer(9));
        numbers.put("ten", new Integer(10));

        String number;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a number in word form: (Example: Five, Six,     Seven): ");
        number = input.next();
        while () {
            System.out.println("You entered: " + number + "\nwhich is the interger: " + numbers);
        }
    }
}

这是我得到的,与说明不符:

以单词形式输入一个数字:(例如:五、六、七):

您输入了:五个
这是整数:{三=3, 六=6, 十=10, 七=7, 九=9, 一=1, 五=5, 四=4, 二=2, 八=8}

【问题讨论】:

  • 最好使用Map&lt;String, Integer&gt; numbers = new HashMap&lt;&gt;()。而且您不需要显式创建 Integer 对象,Java 自动装箱会为您完成:numbers.put("one", 1)

标签: java hashmap hashtable


【解决方案1】:
Scanner input = new Scanner(System.in); 
System.out.println("Enter a number in word form: (Example: Five, Six, Seven): "); 

// wait for input
String number = input.next(); 

// display value, using Map#get method
System.out.println(String.format("You've entered %s which is integer %s", number, numbers.get(number)));  

// iterate over map entries using for (not while) loop
for (Map.Entry<String, Integer> e : numbers.entrySet()) {
    System.out.println(String.format("Number:%s, integer:%s", e.getKey(), e.getValue())); 
}

顺便说一句,你不应该忘记字符串是区分大小写的,即。 e. numbers.get("Seven") 将返回 null,因为您将 "seven" 放在那里,而不是 "Seven"

【讨论】:

    猜你喜欢
    • 2014-11-14
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多