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

时间:2012-03-26 17:59:23

标签: java

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

ganzeZeile是一个字符串数组。
filter是字符串的ArrayList。

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
//  }
}

因为我使用最新的javaversion(1.7 atm),这可能是这段代码行为如此不同的原因。

问候

1 个答案:

答案 0 :(得分:3)

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

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
}