2012-03-26 3 views
0

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을 반환합니다.

부분이 "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 기압)을 사용하기 때문에 그것은이 코드는 너무 다른 동작하는 이유가 될 수 있습니다.

관련

+2

수행 및 필터는이다 ArrayList ? 이러한 변수에 대한 선언을 보여 주면 도움이 될 수 있습니다. –

+1

나를 위해 잘 작동, 재현 할 수 없습니다. – talnicolas

+0

26 및 11에 예상 한 내용이 실제로 포함되어 있는지 디버거 또는 로깅으로 확인 했습니까? – AHungerArtist

답변

3

나는 당신이 준 정보를 기반으로 동작을 재현 할 수없는 - 문제가 아마 다른 곳이다 : 당신이 ganzeZeile이 문자열 []는 것을 의미

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

+0

나는 코드를 테스트했으며 명시된대로 사실을 인쇄했습니다. 나는 어떤 변경도없이 코드를 다시 작성하고 나는 거짓을 얻는다. 뭐라구 내 식 Oo가 잘못 됐어. – Wandang

관련 문제