小编典典

再次在Java中进行字符串比较

java

新手问题,但我有以下代码:

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”时,我只需要简单地再次打印欢迎消息即可。但这不起作用。有任何想法吗?


阅读 189

收藏
2020-11-26

共1个答案

小编典典

在Java中,使用来比较原始类型(int,long,boolean等)的相等性==,而使用equals()方法来比较对象类型(String等)的相等性。如果使用比较两个Object类型==,则要检查
身份 ,而不是相等性-也就是说,您要验证两个对象在内存中是否共享完全相同的引用(因此是相同的对象);通常,您只需要验证它们的
是否相同,并为此使用即可equals()

作为一种好的编程习惯,最好像这样比较字符串,翻转字符串的顺序:

while ("y".equals(confirm)) {

这样,您可以确保比较有效(即使confirm为空)也可以避免潜在的NullPointerException

2020-11-26