0

我正在使用contains()方法编写一个简单的代码,但问题是如果我将一个字符串数组放在contains()方法的参数中,程序什么也不做(没有错误)。因此,它只需要遍历一个字符串数组并查看它是否包含来自第二个数组的元素。我尝试在论点中使用一个词,效果很好。数组不为空,我可以打印它们。那么,有什么建议吗?

这是代码的一部分:

        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 >>Collins
Herrenstoffjacke >>M H7 4B
9-LV (schwarz | 54)
9-LV (schwarz | 52)
Tunika-Lederkleid >>9519

颜色:

米色
布劳恩施瓦茨
_

数组很大,所以我只放了一小部分。

4

2 回答 2

1

您的问题可能是 java 数组从索引 0 开始。此外,您的大括号在 contains 行中放错了位置。尝试 :

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");
            }
                             }
于 2013-03-21T12:48:18.160 回答
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
        }
    }
}
于 2013-03-21T13:51:13.557 回答