【发布时间】: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