2012-03-26 149 views
0
System.out.println(ganzeZeile[26]); 
System.out.println(filter.get(11)); 
System.out.println(ganzeZeile[26].contains(filter.get(11))); 

ganzeZeile是一个字符串数组。
filter是一个字符串ArrayList。为什么String.contains()在这种情况下返回true?

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

编辑:(!)

我有我的代码,并从在TestClass中assylias的testcode,都返回不同的值。我没有看到代码tbh中的任何差异。

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),它可能是此代码行为如此不同的原因。

问候

+2

你的意思是ganzeZeile是一个String []和过滤器是一种ArrayList ?这可能有助于向我们展示这些变量的声明。 – 2012-03-26 18:03:12

+1

无法重现,对我来说工作正常。 – talnicolas 2012-03-26 18:05:34

+0

您是否使用调试器或日志记录验证26和11是否真正包含您的预期? – AHungerArtist 2012-03-26 18:07:14

回答

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 
} 
+0

嗯有趣!应该已经在自己的清洁环境中测试了代码(没想到我的代码会成为简单字符串比较的原因)。 – Wandang 2012-03-26 18:08:02

+0

我测试了您的代码,并按照说明打印了它。我重写了代码,没有任何改变,我得到了错误。 wtf与我的eclipse错误Oo ... – Wandang 2012-03-26 18:48:12

相关问题