import java.util.Scanner;
public class Mal {
public static void main(String[] args) {
System.out.println("Welcome");
Scanner myinput = new Scanner(System. in );
System.out.println("Make your choise. \n 1.Check a card number \n 2.Quit.");
int choise = myinput.nextInt();
switch (choise) {
case 1:
System.out.println("Enter your credit card number: ");
break;
case 2:
System.out.println("Are you sure?");
String answer = myinput.next();
if (answer == "yes") {
System.out.println("Byee ");
} else {
break;
}
default:
System.out.println("Idiot!");
break;
}
}
如何获得Clavier的String答案?
答案 0 :(得分:2)
您希望使用equals方法而不是==运算符。原因是==运算符确实引用了比较,而equals方法检查两个String值是否相同。
以下是您应该尝试的更新代码:
if (answer.equals("yes")) {
System.out.println("Byee ");
} else {
break;
}
答案 1 :(得分:0)
Dunno“Clavier”在这里意味着什么,但这是错误的:
answer == "yes"
您必须使用equals方法比较字符串:
answer.equals("yes")
或它不起作用。
答案 2 :(得分:0)
应使用.equals()方法进行字符串比较,而不是使用==运算符。
==
运算符比较两个对象引用以查看它们是否引用同一个实例。 equals( )
方法比较String对象中的字符
即
<object ref> == <object ref>
- 返回一个评估if的布尔值 引用指向相同的 记忆中的物体。
<object ref>.equals(<object ref>)
- 返回该对象的equals()方法的值。如果 那么equals()
方法就不存在了 “对象”的等于方法 类被称为。
你的代码应该是,
if (answer.equals("yes")) {
System.out.println("Byee ");
} else {
break;
}
答案 3 :(得分:0)
我想要从控制台读取字符串值。为此您可以使用BufferedReader。以下是它的语法:
BufferedReader br = new BufferedReader( new InputStreamReader( System.in));
str = br.readLine(); // String str;
您需要使用以下命令导入BufferedReader和InputStreamReader:
import java.io.*;
包!