这是程序
import java.util.Scanner; //imports class
public class blank2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean valid = true;
String ans;
ans = in.next(); //answer is a string
如果输入“y”,它会直接进入else语句。
while (valid == true)
{
它总是会跳过这句话
if (ans == "y")
{
System.out.println("it works");
valid = false;
{
else
{
System.out.println("no work");
valid = false;
{
}
}
}
它不会工作
答案 0 :(得分:6)
if (ans == "y")
请勿将字符串与==
进行比较。比较对象引用(相同的字符串)。使用:
if ("y".equals(answer))
代替。它将比较字符串的相等性(检查它们是否相同而不是相同的字符串)。我不使用answer.equals("y")
,因为如果answer
因任何原因为空,则存在空指针异常的风险。
答案 1 :(得分:0)
在字符串中,不要使用==,您可以使用compareTo
代替。
if ("y".comprateTo(answer))
使用此方法,您可以检查它们是否相同,或者一个是否大于另一个。
如果您有疑问,请告诉我们