Java 扫描仪需要输入错误。(开关箱)

Java 扫描仪需要输入错误。(开关箱),java,int,switch-statement,java.util.scanner,Java,Int,Switch Statement,Java.util.scanner,} 正如你所看到的,我的代码与整数无关。我的问题是,为什么程序总是告诉我它只创建java.lang.String,而它需要int?谢谢。除非您使用的是Java 7,否则您不能将切换到字符串 在Java 6或更低版本中,开关允许的参数有:int、char、short、byte或Enum什么版本的Java?在Java 7之前,您不能使用带有字符串的开关。对于密码,我建议使用char。它比字符串好一点,你也可以使用switch-case。谢谢@Frisch的回答,我真的认为这是因为我使用的Java版本

}


正如你所看到的,我的代码与整数无关。我的问题是,为什么程序总是告诉我它只创建java.lang.String,而它需要int?谢谢。

除非您使用的是Java 7,否则您不能将
切换到
字符串


在Java 6或更低版本中,
开关允许的参数有:
int
char
short
byte
Enum

什么版本的Java?在Java 7之前,您不能使用带有字符串的开关。对于密码,我建议使用char。它比字符串好一点,你也可以使用switch-case。谢谢@Frisch的回答,我真的认为这是因为我使用的Java版本。顺便说一下,谢谢你的回答@Iwombo!你可以在jdk 7中使用它。我尝试过使用char,但它也不起作用。我想我必须切换到更高版本的Java。谢谢大家!@MichałRybak我将-case“JRU”改为-case“JRU”,因为它是一个图表类型。但是为什么它仍然给我错误?
char
类型包含一个字符,因此“JRU”不是有效的
char
。我建议在尝试编写更复杂的代码之前,先阅读更多关于获得坚实基础的内容。
import java.util.Scanner;
class G2Ex3 {
public static void main (String args[]) {

Scanner in = new Scanner (System.in);
System.out.print("Enter password: ");
String pw = in.nextLine();

switch (pw) {
case "JRU":
case "jru":
System.out.println("Password Accepted!");
break;
default:
System.out.println("Invalid Password!");
}
}