我正在使用contains()
方法编写一个简单的代码,但问题是如果我在contains()
方法的参数中放置一个字符串数组,程序什么都不做(没有错误)。因此,它只需要遍历一个字符串数组并查看它是否包含第二个数组中的元素。我在论证中尝试了一个单词,它运行正常。数组不为null,我可以打印它们。那么,有什么建议吗?
这是代码的一部分:
for(int i = 0; i < farbe.length; i++) {
for(int j = 1; j < names.length; j++) {
if(names[j].contains(farbe[i])) {
System.out.println(names[j]+"\t"+"yes");
}
}
}
从。* txt文件中读取数组元素。因此,'names'数组具有单词序列,'color'数组包含颜色。数组中的部分:
姓名:
Herrenlederjacke&gt;&gt; Collins
Herrenstoffjacke&gt;&gt; M H7 4B
9-LV(schwarz | 54)
9-LV(schwarz | 52)
Tunika-Lederkleid&gt;> 9519
颜色
米色
布朗
施瓦茨
阵列很大,所以我只放了一小部分。
答案 0 :(得分:1)
您的问题可能是java数组从索引0开始。此外,您的大括号在包含行中放错位置。试试:
for(int i = 0; i < farbe.length; i++){
for(int j = 0; j < names.length; j++){
if(Arrays.asList(names[j].contains(farbe[i]))){
System.out.println(names[j]+"\t"+"yes");
}
}
答案 1 :(得分:0)
假设你文件中的每一行都是数组中的单独元素,我们将有
String[] names={
"Names:",
"Herrenlederjacke >>Collins",
"Herrenstoffjacke >>M H7 4B",
"9-LV (schwarz | 54)",
"9-LV (schwarz | 52)",
"Tunika-Lederkleid >>9519"
};
String[] farbe={
"beige",
"braun",
"schwarz",
};
检查names
中哪种颜色可以使用此代码
for (String color : farbe) {//will iterate over all colors
namesLoop:
for(String name :names){//will iterate over all names
if (name.contains(color)){
System.out.println(color+"\t yes");
break namesLoop;//we found this color, we can skip to next one
}
}
}