在开始之前,我是一名新手程序员,仅仅做了大约一天。
输入完成后,如何使程序继续读取输入?对于下面的代码,这是给英语翻译人员的莫尔斯电码,例如当我输入莫尔斯电码时,我试图制作莫尔斯电码,它给了我正确的输出A。但是当我结合莫尔斯电码时,例如。 ...,应为AB,else语句将激活。我该怎么办?
import java.util.Scanner;
公共类MorseTranslator {
public static void main(String[] args) {
System.out.println("Please enter morse code you wish to translate.");
Scanner sc =new Scanner(System.in);
String morse = sc.next();
if (morse.equals(" ")) {
System.out.print(" ");
}
if (morse.equals(".-")){
System.out.print("A");
}
if (morse.equals("-...")){
System.out.print("B");
}
if (morse.equals("-.-.")){
System.out.print("C");
}
if (morse.equals("-..")){
System.out.print("D");
}
if (morse.equals(".")){
System.out.print("E");
}
if (morse.equals("..-.")){
System.out.print("F");
}
else System.out.println("Please input morse code.");
}
}
最佳答案
String.equals()会比较完整的字符串,因此.--...永远不会等于.-,因此您需要的是使用String.indexOf()在摩尔斯字符串中“查找”
if(morse.indexOf(".-")!=-1){
System.out.print("A");
//need more magic here
}
现在,您需要“减去”或从莫尔斯弦中取出这两个字符,并使用循环重复搜索。
if(morse.indexOf(".-")!=-1){
System.out.print("A");
morse=morse.substring(morse.indexOf(".-")+2); // where 2 morse characters
continue; //your hypothetical loop
}
if(morse.indexOf("-...")!=-1){
System.out.print("B");
morse=morse.substring(morse.indexOf("-...")+4); // where 4 morse characters
continue; //your hypothetical loop
}
...
不要忘记循环,直到没有更多数据要处理为止