当前位置: 首页 > 面试题库 >

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

程飞星
2023-03-14
问题内容

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

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

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

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

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



 类似资料:
  • 我对OffsetDateTime的用法非常陌生,我正在尝试将OffsetDateTime字符串与OffsetDateTime进行比较。以这种方式在java中使用now(), 但我正在学习java。时间总体安排所有3种情况下的DateTimeParseException。 然而,如果我将2个OffsetDateTime字符串与CompareTo方法进行比较,它的工作就很好了。 有没有人能在这方面给我

  • 问题内容: 我需要在Java字符串之间执行Diffs。我希望能够使用原始的string和diff版本重建字符串。有人用Java完成吗?你使用什么图书馆? 问题答案: 这个库似乎可以解决问题:google-diff-match-patch。它可以根据差异创建补丁字符串,并允许重新应用补丁。

  • 问题内容: 当比较两个字符串时,我被告知不应使用逻辑运算符(==)。我们应该使用String.equals(String)进行比较。但是,我看到以下代码符合最新的JDK(1.6_23)并打印出来。我尝试四处搜寻,但找不到任何参考。从什么时候开始发生的? 问题答案: 您不应该使用它,因为它会做其他事情,然后您认为。 在这种情况下,“ hello”将被保存(在字符串插入中读取),因此与您的搅动相同的是

  • 我有一个关于Java中字符串的简单问题。下面的简单代码段只是将两个字符串连接起来,然后将它们与进行比较。 比较表达式返回非常明显(我理解和之间的区别)。 当这两个字符串声明为时, 比较表达式在本例中返回。为什么会起作用?是不是一定要用实习生的钱呢?还是我被误导了?

  • 问题内容: http://golang.org/ref/spec#Comparison_operators Go支持字符串比较,没有任何特殊功能。Go运行时是否在后台进行工作以比较字符串文字? 问题答案: 如下面的程序集转储所示,在进行短路检查以查看两个操作数是否为相同的内存字符串(第11行)之后,将字符串比较从运行时委托给函数(第17行): 除非您在编译器或运行时上工作,否则不要太在意您:只需使

  • 问题内容: 我有一个程序正在制作,当用户输入一种心情时,它将在此基础上输出报价。我需要告诉程序 问题是,我不知道如何使程序识别输入并基于该输出文本…这是到目前为止我所拥有的代码。 问题答案: 首先,看起来您正在处理错误的变量。我想你打算比较。 处理字符串时,请始终使用而不是。比较参考值(通常不可靠),同时比较实际值。 将您的字符串转换为全部大写或全部小写也是一个好习惯。在本示例中,我将使用小写字母