我的程序是将输入从英语翻译成摩尔斯电码,反之亦然。首先,它会提示用户输入莫尔斯电码还是英语。之后,它将一个翻译成另一个。我首先处理将英语翻译成摩尔斯电码。我正在使用这个包含摩尔斯电码字母的数组:
String[] codes = {".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", ".... ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", "-..- ", "-.-- ", "--.. ", ".---- ", "..--- ", "...-- ", "....- ", "..... ", "-.... ", "--... ", "---.. ", "----. ", "----- "};
必须以某种方式呈现摩尔斯电码的翻译。当然,英文字母表中的每个字母都必须由其对应的摩尔斯电码字符来表示。每个字符必须用空格分隔。但是,每个单词必须用直线 (|) 分隔。标点和大写不是必需的。这是一个澄清的例子:
输入:这是一个测试。
输出: - .... .. ... | .. ... | .- | - 。... -
我的代码如下:
import javax.swing.JOptionPane;
public class ProjectOne
{
public static void main (String[] args)
{
String decision = getString ("Will you be typing in English or Morse Code?");
String english = "english";
String morse = "morse";
String[] codes = {".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", ".... ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", "-..- ", "-.-- ", "--.. ", ".---- ", "..--- ", "...-- ", "....- ", "..... ", "-.... ", "--... ", "---.. ", "----. ", "----- ", "| "};
char[] letters = {'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', ' '};
if (decision.equalsIgnoreCase(morse))
{
//Translate to English here
}
else if (decision.equalsIgnoreCase(english))
{
String input = getString ("Enter a phrase to be translated to Morse Code:");
input = input.toUpperCase();
for (int n = 0; n < input.length(); n++)
{
char ch = input.charAt(n);
for (int i = 0; i < 26; i++)
{
if (ch == letters[i])
{
String newch = Character.toString(ch);
System.out.print(codes[i]);
}
}
}
}
else
{
System.out.println("Invalid Input - Type 'English' or 'Morse'");
}
}
public static String getString(String paramString)
{
String str = JOptionPane.showInputDialog(paramString);
return str;
}
}
我的问题是莫尔斯电码翻译出现时没有“|” 每个单词之间的分隔符。我尝试在包含英文字母的数组的末尾放置一个空格字符,并在包含摩尔斯电码字符的数组末尾放置一个“|”字符串,认为 for 循环会像其他任何循环一样拾取它字符,但无论如何翻译都会在单词之间出现空格。我能做些什么来解决这个问题?