0

System.exit(0);当在控制台中输入单词“exit”时,我正在尝试实现in java 以终止我的程序。我写了以下方法:

    public static void exit(){

    Scanner input = new Scanner(System.in);
    Str1 = input.next(String);

    if (str1 = "exit"){

        System.exit(0);
    }

    else if (str1 = "clear"){

        System.out.println("0.0");
    }       
}

它似乎没有工作。有没有人有什么建议?

谢谢 PS,如果您还不能说,当“清除”输入控制台时,“清除”应该返回 0.0。

4

5 回答 5

4

将字符串与equals() not 与进行比较==

原因是==只比较对象引用/基元,其中 String 的.equals()方法检查相等性。

if (str1.equals("exit")){

}

并且

else if (str1.equals("clear")){

}

可能有用:“String”.equals(otherString) 有什么好处

于 2013-10-11T07:25:24.553 回答
1

if (str1 = "exit")您一起使用分配而不是比较。您可以与equals()方法进行比较。

于 2013-10-11T07:43:48.090 回答
1
if(str.equals("exit")) 

或者

if(str.equalsIgnoreCase("exit")) 

或者

if(str == "exit") 

代替

if (str1 = "exit"){
于 2013-10-11T07:25:52.900 回答
0

使用String.equals(String other)函数来比较字符串,而不是==运算符。

该函数检查字符串的实际内容,==运算符检查对对象的引用是否相等。请注意,字符串常量通常是“内部”的,因此具有相同值的两个常量实际上可以与 进行比较==,但最好不要依赖它。

所以使用:

if ("exit".equals(str1)){

}
于 2013-10-11T07:30:03.110 回答
0

此外equals()input.next(String pattern);require模式不是String数据类型

将您的代码更改为:

public static void exit(){   

Scanner input = new Scanner(System.in);
str1 = input.next(); //assumed str1 is global variable

if (str1.equals("exit")){

    System.exit(0);
}

else if (str1.equals("clear")){

    System.out.println("0.0");
}

}

注释:http ://www.tutorialspoint.com/java/util/scanner_next_string.htm

于 2013-10-11T07:46:23.023 回答