我在Eclipse中有这个代码:
package test;
import java.util.Scanner;
class test{
public static void main(String args[]){
Scanner Input = new Scanner(System.in);
if (Input.equals("payday2")){
System.out.println(Input);
}
}
}
现在,当我尝试启动代码/ aplication时,它会自行终止。
为什么会发生这种情况?
答案 0 :(得分:3)
您将Scanner
实例化为名为Input
的变量,但从不尝试阅读。
你的病情
if (Input.equals("payday2")){
只会检查Scanner对象是否等于字符串“payday2”,它始终为false,因此程序终止。
如果您想阅读,则需要Input.nextLine()
。
我不知道eclipse,但是Netbeans会用这行警告“等于不兼容的类型”。
此外,您不应按惯例使用大写字母命名变量,只有类名称应以大写字母开头。
所以你的固定程序将是
Scanner input = new Scanner(System.in);
String value = input.nextLine();
if ("payday2".equals(value)) {
System.out.println(value);
}
input
会调用toString
对象的Scanner
,这可能不是您所期望的。答案 1 :(得分:1)
您永远不会从Scanner实例读取输入,因此应用程序不会阻止
String text = input.nextLine();
if ("payday2".equals(text)) {
...
答案 2 :(得分:0)
我认为你的意思是:
String in = Input.nextLine();
if(in.equals("payday2"))
{
System.out.println(in);
}
注意:在Java 7中,您可以执行以下操作:
String in = Input.nextLine();
switch(in)
{
case "payday2":
System.out.println(in)
break;
case "payday the heist":
//...
break;
}
这使得管理不同的输入案例变得更加容易。