switch语句不兼容的类型

时间:2013-10-20 00:39:06

标签: java types switch-statement java-7

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

<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

- ..

.- ..

.--。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

switch(morse[0]) {  
case '.':  
    switch(morse[1]) {  
        case '-':  
        switch(morse[2]) {  
            case '.':  
                system.out.print("x");  
                break;  
            case '-':  
                system.out.print("y");  
                break;  
        }  
    }  
}