java - 为什么在这种情况下 String.contains() 不返回 true ?

标签 java

System.out.println(ganzeZeile[26]);
System.out.println(filter.get(11));
System.out.println(ganzeZeile[26].contains(filter.get(11)));

ganzeZeile 是一个字符串数组。
filter 是一个字符串数组列表。

ganzeZeile[26] = "Ich gebe der Dozentin/dem Dozenten die Gesamtnote."
filter.get(11) = "dem Dozenten die Gesamtnote"

但是 ganzeZeile[26].contains(filter.get(11)) 返回 false

“dem Dozenten die Gesamtnote”不是 “Ich gebe der Dozentin/dem Dozenten die Gesamtnote.” 的一部分,因此 contains(.. .) 应该返回 true

编辑:

我在测试类中得到了我的代码和来自 assylias 的测试代码,两者都返回不同的值(!)。老实说,我没有看到代码有任何区别。

import java.util.ArrayList;
import java.util.List;

public class test1 {

public static void main(String[] args) {
    String[] ganzeZeile = new String[28];
    ArrayList<String> filter = new ArrayList<String>();

    ganzeZeile[26] = "Ich gebe der Dozentin/dem Dozenten die Gesamtnote.";
    for (int i = 0; i < 11; i++) {
        filter.add("");
    }
    filter.add("dem Dozenten die Gesamtnote");

    System.out.println(ganzeZeile[26]);
    System.out.println(filter.get(11));
    System.out.println(ganzeZeile[26].contains(filter.get(11)));//returns false
}

//  public static void main(String[] args) {
//      String[] ganzeZeile = new String[28];
//      ArrayList<String> filter = new ArrayList<String>();
//
//      ganzeZeile[26] = "Ich gebe der Dozentin/dem Dozenten die Gesamtnote.";
//      for (int i = 0; i < 11; i++) {
//          filter.add("");
//      }
//      filter.add("dem Dozenten die Gesamtnote");
//
//      System.out.println(ganzeZeile[26]);
//      System.out.println(filter.get(11));
//      System.out.println(ganzeZeile[26].contains(filter.get(11))); //prints true
//  }
}

由于我使用最新的 java 版本(1.7 atm),这可能是此代码行为如此不同的原因。

问候

最佳答案

我无法根据您提供的信息重现该行为 - 问题可能出在其他地方:

public static void main(String[] args) throws InterruptedException {
    String[] ganzeZeile = new String[27];
    List<String> filter = new ArrayList<String>();

    ganzeZeile[26] = "Ich gebe der Dozentin/dem Dozenten die Gesamtnote.";
    for (int i = 0; i < 11; i++) {
        filter.add("");
    }
    filter.add("dem Dozenten die Gesamtnote");

    System.out.println(ganzeZeile[26]);
    System.out.println(filter.get(11));
    System.out.println(ganzeZeile[26].contains(filter.get(11))); //prints true
}

关于java - 为什么在这种情况下 String.contains() 不返回 true ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877230/

相关文章:

包含 unicode 的 java 文件无法编译

java - 为什么 PropertyDescriptor 行为从 Java 1.6 更改为 1.7?

java - Rest 模板从图像 URL 检索状态代码

java - 线程(在类中)和 Activity 之间的 Android 消息传递

java - Spring Rest CRUD 保存外键

java - 如何动态改变JFrame的背景颜色?

java - 感知器训练的 Delta 训练规则

Java 能否保证WeakHashMap entry check后不会消失

c# - VBoxManage.exe 使用什么 API?

java - 在 Struts 2 中,如何在操作之外访问 "fieldErrors"?