切换语句和字符串

这个问题在这里已经有了答案:

  • 为什么我不能打开一个字符串? 14个答案

  • 据我所知,这是好的:

    public static void sortData(short days[], String name[]) {
        char choice;
        Scanner kd = new Scanner(System.in);
    
        System.out.println("a. Sort by Namenb. Sort by Day");
        choice = kd.next().toCharArray()[0];
    
        switch (choice) {
        case 'a':
            // do something
            break;
        case 'b';
            // do something else
            break;
        }
    }
    

    未经测试


    您可以为接受的选项定义一个字符串列表,并使用indexOf来查找输入的输入。 之后,您可以使用switch的索引。

    喜欢这个

    List<String> options = Arrays.asList("name", "day", "color", "smell");
    switch (options.indexOf(choice)) {
    case 0: // name
        ...
    case 1: // day
        ...
    ... // etc
    default: // none of them
    }
    

    但是,使用这些数字不太可读。

    另一个想法:定义一个枚举并使用valueOf(choice) 。 在这种情况下,您必须为非匹配输入捕捉IllegalArgumentException

    enum Options {
        name, day, color, smell
    }
    

    接着

    try {
        switch (Options.valueOf(choice)) {
        case name: ...
        case day: ...
        // etc
        }
    } catch (IllegalArgumentException ex) {
        // none of them
    }
    

    或者,最后,您切换到Java 7 ;-)

    链接地址: http://www.djcxy.com/p/84515.html

    上一篇: Switch Statement and Strings

    下一篇: Using String with Switch statements?