将String与String []与布尔值进行比较?

时间:2015-08-21 11:29:40

标签: java arrays string boolean return

我想从一个void main方法进行比较,其中有一个数组和一个字符串。所以我想做的是比较名称是否在数组中。 return true else返回false。但是我无法让它发挥作用。这对我来说都是假的。而且我不知道为什么?

public boolean isActor(String name) {

        if(name.equals(actors)) {
            return true;

        }else {
            return false;
        }
    }

public static void main(String[] args) {
    String[] actors = {"Ulla Skoog", "Suzanne Reuter", "Peter Dalle"} ;
    Dvd d1 = new Dvd(10327, "Yrrol", "Peter Dalle", actors, 88);
    System.out.println("Medverkar Kalle Kula i Lorry: " + d1.isActor("Kalle kula"));
    System.out.println("Medverkar Ulla Skoog i Lorry: " + d1.isActor("Ulla Skoog"));

}

任何帮助将不胜感激!

编辑:所以我试着做(如果(Arrays.asList(演员).contains(名字)),是的,它是有效的。问题是我现在可能被允许在测试下进行,这可能会让我失去分数并且我试图创建一个for循环并且通过它创建一个等于语句但仍然得到相同的结果,这都是错误的。

EDIT2:也试图这样做

public boolean isActor(String name) {
          for(String s: actors){
                if(s.equals(actors))
                    return true;
            }
            return false;
        }

但仍然得到了同样的结果

EDIT3:

我想做的是制作e方法(公共布尔isActor(String name){)并且我想制作一个if语句,它应该通过说&#34来制作算法;如果这个名字在这个阵列上。说实话。如果它不在数组中。说它是假的。"这就是我想要做的事情。

2 个答案:

答案 0 :(得分:2)

您必须测试数组中的每个项目:

public boolean isActor(String name) {

    for (String actor : actors) {
        if (name.equals(actor) {
            return true;
        }
    }
    return false;
}

答案 1 :(得分:1)

public boolean isActor(String name, List<String> actorList) {

    if(actorList.contains(name)) {
        return true;

    }else {
        return false;
    }
}

public static void main(String[] args) {
    String[] actors = {"Ulla Skoog", "Suzanne Reuter", "Peter Dalle"} ;   
    List<String> actorList = Arrays.asList ( actors);
    Dvd d1 = new Dvd(10327, "Yrrol", "Peter Dalle", actors, 88);
    System.out.println("Medverkar Kalle Kula i Lorry: " + d1.isActor("Kalle kula",actors));
    System.out.println("Medverkar Ulla Skoog i Lorry: " + d1.isActor("Ulla Skoog",actors));
}