我必须创建莫尔斯到英语,反之亦然的翻译。英语到morse部分工作,但每当我试图用morse输入一些东西时,它会给我一个ArrayIndexOutofBounds异常,我被如何修复它所困扰。我已经放入了一个分裂函数,但我只是不确定为什么我会得到异常。
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] english = { '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', '1', '2', '3', '4',
'5', '6', '7', '8', '9', '0'};
String[] morse = { ".-", "-...", "-.-.", "-..", ".",
"..-.", "--.", "....", "..", ".---",
"-.-", ".-..", "--", "-.", "---",
".--.", "--.-", ".-.", "...", "-",
"..-", "...-", ".--", "-..-", "-.--",
"--..", "|" }
String userInput;
int translatorChoice;
String result;
System.out.println("Enter 1 for English to Morse code. Enter 2 for Morse to English:");
translatorChoice = input.nextInt();
if (translatorChoice != 1 && translatorChoice !=2 ){
throw new ArithmeticException("Please enter a valid number");
}
System.out.println();
System.out.println("Please input sentence into the translator:");
userInput = br.readLine();
if (translatorChoice == 1){
userInput = userInput.toLowerCase();
englishtoMorse(morse,userInput,english);}
else if(translatorChoice == 2) {
morsetoEnglish(english, userInput, morse);}
public static void morsetoEnglish (char[] english, String userInput, String[] morse){
String[] input = userInput.split("|");
for (int i = 0; i < input.length; i++){
for (int j = 0; j < morse.length; i++){
if (morse[j].equals(input[i])) {
System.out.print(english[j]);
}}}}
这是工作代码。需要进行3项更改,首先,必须更改上的拆分,以更正regex
循环的内部“\\”
在''
上的拆分。split()
将正则表达式作为参数,而''
是regex中的一个特殊字符,因此您需要使用regexe的\
转义它,但是,当将regex转换为java字符串时,您需要再次转义它。结果是\\
第二,当字符串匹配时,可以停止,因此添加了break。
第三,内部循环增量的变量
i
更改为j
。
public static void morsetoEnglish (char[] english, String userInput, String[] morse){
String[] input = userInput.split("\\|");
for (int i = 0; i < input.length; i++){
for (int j = 0; j < morse.length; j++){
if (morse[j].equals(input[i])) {
System.out.print(english[j]);
break;
}
}
}
}
以下是一些测试输入/输出:输入1表示英语到莫尔斯码。输入2为Morse到英语:2
Please input sentence into the translator:
.--.|.|-|
pet
我正在为我的编程介绍课编写一个简单的莫尔斯电码翻译器。这是一个非常简单的设计基础上的技术,我已经教。 这个程序工作于单个字符转换,但不能做单词或句子。我认为问题与末尾的语句有关,但我不知道如何打印整个翻译文本。
到目前为止,这是我的代码(是的,它是法语的,因为我在一个讲法语的省份和学校,所以如果你需要澄清我的代码,请告诉我): 所以是啊,对不起我的英语如果它不是那么好
及其对应的莫尔斯电码 作为测试用语。当我用这个短语把英语翻译成莫尔斯电码时,我得到了
这是一个在线翻译的c++库,在Linux系统上实现的. 支持百度和谷歌在线翻译 可中英或中日互译。 emacs插件支持
英文中形容词有原级、比较级、最高级之分。翻译最高级的常见做法就是在之前加上“最”:best就是“最好”,worst就是“最糟”,highest就是“最高”,lowest就是“最低”……总之离不开“最”字。 这种现象正常吗?著名翻译家思果先生曾提出,最高级不一定都要翻译成“最xx”,因为中文里“最”往往是唯一,而英文的最高级则可以加one of…之类的限定,“最xx之一”的说法,多少有点名不正、言不
本文向大家介绍java实现英文翻译程序,包括了java实现英文翻译程序的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现英文翻译程序的具体代码,供大家参考,具体内容如下 1.功能简介 将文本文件中的英文转换为对应的中文 词库如下: 源文件: 翻译后的文件: 输入源文件路径,将翻译后的内容输出到result.txt文件中。 2.重要技术 (1)如何载入词库文件 因为词库