【问题标题】:Hash-Map Translator Printing NullHash-Map Translator 打印 Null
【发布时间】:2020-04-26 05:10:29
【问题描述】:

在我的面向对象编程入门课程中,我必须制作一个莫尔斯电码翻译器。它需要读入一个文本文件并使用它来匹配用户输入以进行莫尔斯电码翻译。我的问题在于,一旦我输入了用户输入,它就会返回一个空值,而不是一个莫尔斯电码翻译。

public static void main(String[] args) throws FileNotFoundException, IOException {
  //File file = new File(new FileReader("C:\\Users\\myNAme\\Desktop\\morse.txt");
    Scanner scan = new Scanner(new FileReader("C:\\Users\\myName\\Desktop\\morse.txt"));
    Scanner input = new Scanner(System.in); 
    HashMap<String, String> morse = new HashMap<String, String>();

    while (scan.hasNextLine())
        {
         String[] columns = scan.nextLine().split(" ");
         morse.put(columns[0],(columns[1]));
        }           
    System.out.println(morse);
    System.out.println("What do you want to translate into morse code?: ");
    String eng2morse = input.nextLine();
    eng2morse = eng2morse.toUpperCase();
    System.out.print(morse.get(eng2morse));


    }

}

我在这个项目上苦苦挣扎了一段时间,我只是想看看我做错了什么以及如何解决它。

文本文件 (morse.txt)

一个.-

B-...

C -.-.

D-..

E.

F ..-.

G --.

H ....

我..

J .---

K-.-

L .-..

M--

N -.

哦——

P .--.

问 --.-

R .-.

S ...

T-

你..-

V ...-

W .--

X -..-

是-.--

Z --..

1 .----

2 ..---

3 ...--

4 ....-

5 .....

6 -....

7 --...

8 ---..

9 ----.

0 -----

/-..-.

+ .-.-.

= -...-

。 .-.-.-

,--..--

? ..--..

(-.--.

) -.--.-

- -....-

" .-..-.

_ ..--.-

' .----.

: ---...

; -.-.-.

$ ...-..-

【问题讨论】:

  • Return null = key not found...能否显示控制台日志?
  • 我的猜测是文件内容用A=.-, B=-...之类的条目填充映射,所以映射键都是1个字符的字符串。为什么你会期望例如get("AB") 找地图入口?如果您想将AB 翻译成.- -...,那么需要遍历eng2morse 的字符并查找各个莫尔斯符号。
  • 无法再访问文本文件 - AccessDenied。你能分享你的数据吗?
  • 抱歉没有意识到,编辑了帖子以将其包含在文本中。
  • 这是控制台日志:{"=.-..-., $=...-..-, '=.----., (=-.--., )=-.--.-, +=.-.-., ,=--..--, -=-..-, .=.-.-.-, /=-..- ., 0=-----, 1=.----, 2=..---, 3=...--, 4=....-, 5=....., 6=-...., 7=--..., 8=---.., 9=----., :=---..., ;=-.-.-., ==-...-, ?=..--.., A=.-, B=-..., C=-.-., D=-.., E=., F=.. -., G=--., H=.., I=.., J=.---, K=-.-, L=.-.., M=--, N=-. , O=---, P=.--., Q=--.-, R=.-., S=..., T=-, U=..-, V=...-, W=.--, X=-..-, Y=-.--, Z=--.., _=..--.-}你想把什么翻译成摩尔斯电码?:hi null

标签: java input null hashmap morse-code


【解决方案1】:

可能有以下原因:

  1. 修剪您从用户那里获取的输入。
  2. 在放置 columns[0] 时修剪它并使用 toUpperCase() 方法,因为您将它用于用户输入。

【讨论】:

    【解决方案2】:

    改变

             morse.put(columns[0],columns[1]);
    

             morse.put(columns[1].trim(),columns[0].trim());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2011-08-01
      • 1970-01-01
      相关资源
      最近更新 更多