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

字符串不等于字符串?

辛建业
2023-03-14
问题内容

String[] letters = {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “L”};

Scanner inp = new Scanner(System.in);
String input = (inp.nextLine());
String[] cord = input.split("");

for(int x = 0; x < 10; x++)
    if(letters[x] == cord[1])
        System.out.println("Fk yeah!");

为什么是 Fk呀! 输入AL字母之一绝对不会发生?


问题答案:

字符串是对象。所述==通过引用,而不是由它们的内部值进行比较的对象。

有两种解决方案

  1. 使用String#equals()method来比较两个String对象的值。

    if (letters[x].equals(cord[1]))
    
  2. 使用char代替String。这是原始的,因此==可以使用。

        char[] letters  = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L'};

    Scanner inp = new Scanner(System.in);
    String input = (inp.nextLine());
    char[] cord = input.toCharArray();

    for (int x = 0; x < 10; x++)
        if (letters[x] == cord[1])
            System.out.println("Fk yeah!");


 类似资料:
  • 问题内容: 我试图理解字符串比较与字符串比较的输出。需要明确的是,我拥有使用==和equals比较两个字符串的类。我试图将==和equals()的输出合并为字符串。equals()的输出会连续显示,但==的输出不会 连续显示。使用Java的装箱功能,将与字符串连接的布尔值联系起来。equals和==都返回布尔值。那么为什么会有这种差异呢?有人可以解释吗? 输出 更新:答案 如果不使用s1 == s

  • 我的应用程序有一个自动更新功能。为了验证它是否成功下载了文件,我比较了两个哈希,一个是xml,另一个是下载后生成的哈希。两个哈希是一样的,但我发现两个哈希不一样。当我检查大小时,xml哈希字符串有66个,另一个是36个。我使用了trim方法,但还是运气不好。 哈希代码

  • 问题内容: String s1 = “andrei”; String s2 = “andrei”; 提供以下代码,为什么第二个比较s2 == s3为true?s2.toString()返回的实际上是什么?实际位于哪里? 问题答案: 首先是无操作: 其次,对String常量进行了插值,因此s1和s2在幕后被更改为相同的String实例。

  • 问题内容: 请帮我,java中的string.equals如何与null值一起使用?例外情况有问题吗?三种情况: 结果的价值是什么?我期望这个值: result1为true; result2为假; result3为假; 问题答案: 您不能使用解引用(。)来访问实例变量或在实例上调用方法(如果该实例为)。这样做会产生一个。 通常,使用您知道为非null的东西进行字符串比较。例如,。

  • 对性能是否有影响? 不同Java版本的行为是否有差异?

  • 当使用and这两个都创建不同的String对象吗?我知道如果我使用它使用s1的相同对象,但在s2的情况下也使用相同的对象吗?如果是这样,那么为什么使用不同的对象。因为如果我做它返回false; 我对等于方法的理解是,它比较两个引用是否引用同一个对象,除非我们重写了等于方法,如果我的理解是错的,请告诉我。