1

我正在创建一个程序,它读取用摩尔斯电码编写的内容并将其翻译成英语,我首先必须读取所有数据集的第一个数字,第二个数字代表第一个数据集中有多少数据,然后我读入了莫尔斯电码的字符串。我决定为这个程序使用一个 Switch 语句,但每次我编译它时,它都会说 switch(morse) 的“不兼容类型”。仅供参考,这仅与我的代码不同..

<pre>
import java.io.*;
import java.util.*;
import static java.lang.System.*;

public class G{

    public static void main(String[] args)throws IOException
        {
            Scanner scan = new Scanner(new File("G.txt"));
            int times = scan.nextInt();
            times=scan.nextInt();
            for(int i=0; i<times; i++){

                 String morse = scan.nextLine();
                 switch(morse){
                    case ".- ":
                        System.out.print( "a");
                        break;
                    case "-… ":
                        System.out.print( "b");
                        break;
                    case "-.-. ":
                        System.out.print( "c");
                        break;
        }
    }
}
<code>

这是我的输入文件(忽略每行之间的空格)2

4

-..

..-

-..

.

4

-..

.

.-..

.--.

4

2 回答 2

2

Java 7 中添加了启用字符串。如果您使用的是 Java 6 或更低版本,则应将构建路径设置更新为 Java 7,或升级编译器、JDK 和 JRE。

于 2013-10-20T00:42:18.587 回答
0

一个丑陋但可能的解决方案是根据每个字符进行切换,例如

switch(morse[0]) {  
case '.':  
    switch(morse[1]) {  
        case '-':  
        switch(morse[2]) {  
            case '.':  
                system.out.print("x");  
                break;  
            case '-':  
                system.out.print("y");  
                break;  
        }  
    }  
}
于 2013-10-20T00:49:03.300 回答