切换语句和字符串
这个问题在这里已经有了答案:
据我所知,这是好的:
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