Java 为什么';在这种情况下,t String.contains()是否返回true?
Java 为什么';在这种情况下,t String.contains()是否返回true?,java,Java,ganzeile是一个字符串数组filter是字符串的数组列表 System.out.println(ganzeZeile[26]); System.out.println(filter.get(11)); System.out.println(ganzeZeile[26].contains(filter.get(11))); 但是ganzezile[26]。包含(filter.get(11))返回false “dem Dozenten die Gesamtnote”是否属于“Ich gebe
ganzeile
是一个字符串数组filter
是字符串的数组列表
System.out.println(ganzeZeile[26]);
System.out.println(filter.get(11));
System.out.println(ganzeZeile[26].contains(filter.get(11)));
但是ganzezile[26]。包含(filter.get(11))
返回false
“dem Dozenten die Gesamtnote”
是否属于“Ich gebe der Dozentin/dem Dozenten die Gesamtnote.”
,因此包含(…)
应返回true
编辑:
我在testclass中获得了我的代码和来自assylias的testcode,它们都返回不同的值(!)。我看不出代码tbh有什么不同
ganzeZeile[26] = "Ich gebe der Dozentin/dem Dozenten die Gesamtnote."
filter.get(11) = "dem Dozenten die Gesamtnote"
import java.util.ArrayList;
导入java.util.List;
公共类test1{
公共静态void main(字符串[]args){
String[]ganzeZeile=新字符串[28];
ArrayList过滤器=新的ArrayList();
ganzeZeile[26]=“我是一个很好的律师/律师。”;
对于(int i=0;i<11;i++){
过滤。添加(“”);
}
添加(“dem Dozenten die Gesamtnote”);
System.out.println(ganzeile[26]);
System.out.println(filter.get(11));
System.out.println(ganzeile[26].contains(filter.get(11));//返回false
}
//公共静态void main(字符串[]args){
//String[]ganzeZeile=新字符串[28];
//ArrayList过滤器=新的ArrayList();
//
//ganzeZeile[26]=“我是一个很好的律师/律师。”;
//对于(int i=0;i<11;i++){
//过滤。添加(“”);
// }
//添加(“dem Dozenten die Gesamtnote”);
//
//System.out.println(ganzeile[26]);
//System.out.println(filter.get(11));
//System.out.println(ganzeile[26].contains(filter.get(11));//prints true
// }
}
由于我使用的是最新的javaversion(1.7ATM),这可能是该代码表现如此不同的原因
关于根据您提供的信息,我无法重现这种行为-问题可能在其他地方:
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
// }
}
publicstaticvoidmain(String[]args)抛出InterruptedException{
String[]ganzeZeile=新字符串[27];
列表过滤器=新的ArrayList();
ganzeZeile[26]=“我是一个很好的律师/律师。”;
对于(int i=0;i<11;i++){
过滤。添加(“”);
}
添加(“dem Dozenten die Gesamtnote”);
System.out.println(ganzeile[26]);
System.out.println(filter.get(11));
System.out.println(ganzeile[26].contains(filter.get(11));//prints true
}
我无法根据您提供的信息再现行为-问题可能在其他地方:
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
// }
}
publicstaticvoidmain(String[]args)抛出InterruptedException{
String[]ganzeZeile=新字符串[27];
列表过滤器=新的ArrayList();
ganzeZeile[26]=“我是一个很好的律师/律师。”;
对于(int i=0;i<11;i++){
过滤。添加(“”);
}
添加(“dem Dozenten die Gesamtnote”);
System.out.println(ganzeile[26]);
System.out.println(filter.get(11));
System.out.println(ganzeile[26].contains(filter.get(11));//prints true
}
您的意思是Ganzezile是字符串[],而filter是数组列表吗?它可能有助于向我们展示这些变量的声明。无法复制,对我来说工作正常。您是否已使用调试器验证或记录26和11确实包含您所期望的内容?@AHungerArtist是的,我使用调试器进行了检查。如果我发现可疑,我会检查两次。thxeitherfilter.get(11)
在第一次和第二次调用时返回不同的值,或者这些字符串略有不同。比如在筛选器字符串的末尾添加一个空格。您的意思是ganzeZeile是字符串[],而筛选器是数组列表吗?它可能有助于向我们展示这些变量的声明。无法复制,对我来说工作正常。您是否已使用调试器验证或记录26和11确实包含您所期望的内容?@AHungerArtist是的,我使用调试器进行了检查。如果我发现可疑,我会检查两次。thxeitherfilter.get(11)
在第一次和第二次调用时返回不同的值,或者这些字符串略有不同。比如在过滤器字符串的末尾添加一个空格。嗯,很有趣!我应该自己在干净的环境中测试代码(没想到我的代码会导致一个简单的字符串比较)。我测试了你的代码,结果如前所述是真的。我重写了代码,没有任何改动,结果是错误的。wtf与我的eclipse Oo错误…嗯,有趣!我应该自己在干净的环境中测试代码(没想到我的代码会导致一个简单的字符串比较)。我测试了你的代码,结果如前所述是真的。我重写了代码,没有任何改动,结果是错误的。wtf与我的eclipse Oo错误。。。