我正在编写一个将莫尔斯代码转换为英语的java程序。我寻求帮助,发现我可能需要对string.split()
做一些事情,但我没有经验,也不知道在哪里放。这是我的代码:
String r = JOptionPane.showInputDialog(null, "Please enter the text you would like to be translated into morse code. Use spaces between letters, and \"|\" for a space. " "\n To print \"Hi there\", you would want to type \'.... .. | - .... . .-. . \'\n\n The morse code will print out at the bottom of your screen.");
char [] regenglish = {'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', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', '!', '?', '.', ',', '/', ':', ';',
'-', '"', '\'', '(', ')', ' '};
String[] regmorse = { ".- ", "-... ", "-.-. ", "-.. ",
". ", "..-. ", "--. ", ".... ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-.",
"--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ",
"-..- ", "-.-- ", "--.. ", "----- ", ".---- ", "..--- ",
"...-- ", "....- ", "..... ", "-.... ", "--... ", "---.. ",
"----. ", "-.-.-- ", "..--.. ", ".-.-.- ", "--..-- ", "-..-. ", "-- -... ",
"-.-.- ", "-....- ", ".----. ", "-.--. ", "-.--.- ",
"| "};
String[] morseChars = r.split(" ");
char[] chars = Arrays.toString(morseChars).toCharArray();
boolean endsWithWordSeparator = Arrays.toString(chars).endsWith("| ");
String st = "";
for (int j = 0; j < chars.length; j++)
{
for (int i = 0; i < regmorse.length; i++)
{
if (regmorse[i].equals(Character.toString(chars[j])))
{
st = st + regenglish[i];
}
}
}
System.out.println(st);
我想我只是为什么不打印任何东西,以及扮演什么角色
string.split()
播放,如果有的话。
答案 0 :(得分:2)
if (regmorse[i].equals(Character.toString(chars[j])))
您尝试将字符与多字符字符串进行比较,因此永远不会满足此条件。例如,您要检查&#34; -...&#34;相当于&#34;。&#34;。
你需要先逐个字符地比较后退或者将字符的字符打包在一起,然后再将它们与regmorse进行比较。