如何根据用户输入在哈希表中添加某些值?

2024-10-01 17:36:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Java制作一个gematria计算器,并尝试获得与python相同的结果。我怎样才能在java中打印出用户输入的值的总和,并得到与python中相同的最终结果?请注意,我是java初学者,请原谅我对这个问题的无知

我设法用python制作了一个,并想用java做一些概念上类似的事情。在python中,我有一本包含所有英文字母及其数值的字典

Python代码

    Letter_values = {" ":0, 
    `"A": 1,`   
    "B": 2,
    # goes through rest of alphabet.}
    New_total = []  
    def get_gematria():  
          word = input("What do you want the gematria of?")
          upper_word = [x.upper() for x in word]
          for i in upper_word:
          New_total.append(Gematria[i])
          print(F"The gematria of {word} is {sum(New_total)}.")
          New_total.clear
          get_gematria() 
    get_gematria() 

根据我对Java的理解,我将做一个哈希表,然后我知道如何写出它

Java代码

    package com.company;
    import java.util.*;
    public class Main {

           public static void main(String[] args)  {
             Hashtable<String, Integer> Letter_Values = new Hashtable<>();
             Letter_Values.put("A", 1);
             Letter_Values.put("B", 2);
            // Goes through rest of alphabet
             System.out.println("What do you want the gematria of?")
             Scanner i = new Scanner(System.in);
             String Gematria = i.next();
             System.out.println("The gematria of " + Gematria + " is " 
               + Letter_Values.get(Gematria))

因此,在Java程序中,如果输出的输入为"A"(不带引号),我将得到:

"The gematria of A is 1."

对于输入,我输入了"B"(不带引号),对于输出,我将得到:

"The gematria of B is 2."

但是,如果输入ABAA作为输入,输出将是:

"The gematria of AB is null."

我还尝试在这里放置一个for循环:

for (int j = 0; j <Gematria.length(); j++) {
    System.out.println("The gematria of " + Gematria + " is " 
      + Gematria_Values.get(Gematria));

同样,如果我把A作为输入,我会得到与之前相同的结果:

"The gematria of A is 1."

然而,如果我把AA或任何字母组合放进去,我会得到

"The gematria of AA is null."
"The gematria of AA is null."

我明白了

"The gematria of x is null."

根据信的数量,我输入了。所以如果我加入AAAA。输出:

"The gematria of AAAA is null." 4 Times

我想它清楚地说明了我用java代码得到了什么

在python程序中,如果我在aaab中输入,我会得到:

"The gematria of aa is 2."

"The gematria of ab is 3."

因此,将用户输入转换为大写是很好的,但这不是我在这里要问的主要问题

我的主要问题是:如何在java中获得与python相同的最终结果


Tags: ofthenewforgetisjavanull
1条回答
网友
1楼 · 发布于 2024-10-01 17:36:11

从更新for循环

for (int j = 0; j <Gematria.length(); j++) {
    System.out.println("The gematria of " + Gematria + " is " + Gematria_Values.get(Gematria));

int sum = 0;
for (int j = 0; j < Gematria.length(); j++) {
    sum+= Letter_Values.get(String.valueOf(Gematria.charAt(j)));
}
System.out.println(sum);

相关问题 更多 >

    热门问题