【问题标题】:JavaIO Input variable value issuesJava IO 输入变量值问题
【发布时间】:2015-05-08 08:54:47
【问题描述】:
 public static void main(String[]someVariableName) throws IOException{
    int Actinium = 89;
    int Ac = Actinium;
    String element //tried multiple variable data types
    Scanner in = new Scanner(System.in);
    System.out.println("Please enter an element");
    element = in.next();
    System.out.println(element);

我正在尝试制作一个程序,当用户输入元素的名称或缩写时,程序会输出原子序数。在这个例子中,我只有原子序数为 89 的 Actinium。当我运行程序时,输出只是文字输入。

【问题讨论】:

  • ....你期待什么?您将用户输入的任何内容 a 放入变量中,然后打印该变量...为什么还要打印其他内容?
  • 计算机通常很笨。你必须用非常小的细节告诉他们如何做复杂的事情。在这种情况下,你必须告诉计算机从用户输入到原子序数它必须采取的确切步骤——它必须读取什么以及放在哪里、它必须检查什么以及如果检查成功或失败。

标签: java java-io


【解决方案1】:

您想要的是原子序数与其名称的映射。这意味着您需要一个键值对,其中键是原子序数,其值是元素名称。

在 java 中,我们为此使用 hashmap。

    public static void main(String[]someVariableName) throws IOException{

        Map<String,Integer> elementMap=new HashMap<String,Integer>();
        elementMap.put("Actinium",89);  //Actinium becomes key and 89 its value
        String element //tried multiple variable data types
        Scanner in = new Scanner(System.in);
        System.out.println("Please enter an element");
        element = in.next();
        System.out.println(elementMap.get(element));//gets the value for particular key
}

希望这会有所帮助!

祝你好运!

【讨论】:

  • OP 要求从元素名称到其原子序数,而不是相反。此外,还有一些你不使用的变量。
  • ...还有不需要的变量?
  • 谢谢。我还在学习 Java,我想我有点超前了,我想我可以用我已经知道的东西来做到这一点。
【解决方案2】:

您的输入与任何数据结构都不相关,而且您在前两句话中没有做任何您认为的关系。在前两个语句中,您为两个变量赋予相同的值:“Actinium”和“Ac”。

要做的第一件事:创建一个内联数据结构,将您将输入的数据与您正在查询的数据关联起来。对于这种情况,我会推荐使用 HashMap,因为查询 Map 的时间效率为 O(1)(您可能不理解它的含义,但它在更大的应用程序中很重要)

 public static void main(String[]someVariableName) throws IOException{ 

 HashMap<String, Integer> hm=new HashMap<String, Integer>();
 hm.put("hydrogen", 1);
 hm.put("helium", 2);
 ...

 System.out.println("Please enter an element");
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 String name=br.readLine();
 System.out.println(hm.get(name));

现在您正在创建字符串(字符链)和整数之间的关系,如果在关系映射中找到输入中引入的字符串,它将返回对应的数值。

【讨论】:

  • 这里也是。 OP 希望从元素名称获取其原子序数,而不是相反。
猜你喜欢
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多