我正在尝试在java中实现System.exit(0);
以在控制台中键入“exit”一词时终止我的程序。我写了以下方法:
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");
}
}
它似乎没有用。有没有人有任何建议?
由于 P.S“清除”只是在控制台输入“清除”时才返回0.0,如果你还不知道的话。
答案 0 :(得分:4)
将equals()
的字符串与==
进行比较。
原因是==
只是比较对象引用/原语,其中String的.equals()
方法检查相等。
if (str1.equals("exit")){
}
以及
else if (str1.equals("clear")){
}
答案 1 :(得分:1)
if(str.equals("exit"))
或
if(str.equalsIgnoreCase("exit"))
或
if(str == "exit")
而不是
if (str1 = "exit"){
答案 2 :(得分:1)
使用if (str1 = "exit")
您使用分配而不是比较。
您可以与equals()
方法进行比较。
答案 3 :(得分:0)
使用String.equals(String other)
函数比较字符串,而不是==
运算符。
该函数检查字符串的实际内容,==
运算符检查对象的引用是否相等。请注意,字符串常量通常是“实例化”,这样两个具有相同值的常量实际上可以与==
进行比较,但最好不要依赖它。
所以使用:
if ("exit".equals(str1)){
}
答案 4 :(得分:0)
除了equals()
,input.next(String pattern);
要求模式不是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