java - 字符串与字符串数组的元素之间的比较

标签 java string immutability

我的部分代码:

  int t,w;
  String day;
  String[] week=new String[]{"mon","tues","wed","thurs","fri","sat","sun"};
  .
  .
  .
  day=sc.nextLine();
  .
  .
   for(i=0;i<7;i++)
   {
           if(day.equals(week[i]))
           {

                break;
           }
    }

即使字符串包含相同,“.equals()”方法每次都会返回“false”。输出不会随着数组的初始化而改变。 'String[] week={"mon","tues",......}' 给出相同的输出。当内存位置不同时,此方法是否返回 false?请澄清。

最佳答案

下面的 Ankush 对我来说效果很好,请确保您对此代码使用相同的大小写。如果你想匹配任何大小写,请使用 equalsIgnoreCase 而不是 equals

package com.java;

import java.util.Scanner;

public class Test {

    static void check() {
        String day;
        String[] week = new String[] { "mon", "tues", "wed", "thurs", "fri", "sat", "sun" };

        Scanner sc = new Scanner(System.in);

        day = sc.nextLine();

        for (int i = 0; i < 7; i++) {
            if (day.equals(week[i])) {
                System.out.println("break");
                break;
            }
        }

        sc.close();
    }

    public static void main(String args[]) {
        Test.check();
    }
}

关于java - 字符串与字符串数组的元素之间的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48043456/

相关文章:

java - 使用 Jedi 通过 Java 客户端从 Redis 服务器上的列表中删除字符串

javascript - 根据多个分隔符拆分字符串 [/, #, @, '' ]

javascript - JS/NodeJS JSON 缓冲区到字符串

c# - Cast<T> 的实现不是针对 Linq 的不可变风格吗?

list - 如何在函数式编程中对状态变化进行建模

java - 动态加载数据到新 View

Java,将字符串从一种方法传递到另一种方法

java - 如何在java中处理阿拉伯语

java - 将 Java 字符串数组转换为 LaTeX 表

javascript - 如何实现不变性