新手问题,但我有这段代码:
import java.util.*;
import java.io.*;
public class Welcome1
{
// main method begins execution of Java application
public static void main( String[] args )
{
String confirm = "y";
while(confirm=="y")
{
System.out.println( "Welcome to Java Programming!" );
System.out.println( "Print Again? (y/n)" );
Scanner input = new Scanner(System.in);
confirm = input.nextLine();
}
}
}
当用户在询问时输入“y”时,我只需要简单地再次打印欢迎消息。 但它不起作用。有什么想法吗?
最佳答案
在 Java 中,基本类型(int、long、boolean 等)使用 ==
进行相等性比较,而对象类型(String 等)使用equals()
方法。如果您使用 ==
比较两个对象类型,您检查的是身份,而不是相等性——也就是说,您将验证这两个对象是否完全相同内存中的引用(因此是同一个对象);通常,您需要的只是验证它们的值 是否相同,为此您可以使用equals()
。
作为一种良好的编程习惯,最好像这样比较字符串,翻转字符串的顺序:
while ("y".equals(confirm)) {
通过这种方式,即使 confirm
为 null,您也可以确保比较有效,从而避免潜在的 NullPointerException
。
关于java - 再次在 Java 中进行字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702986/