如何检查数组列表是否包含某个字符串

时间:2017-04-12 01:09:53

标签: java oop

我看过这里,我得到的并没有真正起作用。这是运行的代码,但它没有按照我的期望去做

package bcu.gui;

import java.util.ArrayList;
import java.util.Arrays;

public class compare {

    private static ArrayList<String> list = new ArrayList<String>();

    public static void main(String[] args) {
        list.add("Paul");
        list.add("James");

        System.out.println(list); // Printing out the list

        // If the list containsthe name Paul, then print this. It still doesn't print even though paul is in the list
        if(Arrays.asList(list).contains("Paul")){
            System.out.println("Yes it does");
        }

    }

}

3 个答案:

答案 0 :(得分:5)

你不必这样做:

if(Arrays.asList(list).contains("Paul"))

因为标识符list已经是ArrayList

你需要这样做:

if(list.contains("Paul")){
    System.out.println("Yes it does");
}

答案 1 :(得分:1)

您没有得到预期的原因是使用

Arrays.asList(list) 

返回一个具有array类型的单个元素的新数组。如果你的列表包含两个元素[Paul,James],那么Arrays.asList(列表)将是 [[保罗,詹姆斯]]。

'Ousmane Mahy Diaw'已经提供的问题的正确解决方案

以下内容也适合您:

 // if you want to create a list in one line
 if (Arrays.asList("Paul", "James").contains("Paul")) {
     System.out.println("Yes it does");
 }
 // or if you want to use a copy of you list
 if (new ArrayList<>(list).contains("Paul")) {
     System.out.println("Yes it does");
 }

答案 2 :(得分:0)

ArrayList的内置函数叫contains()。因此,如果您想尝试使用内置函数,您只需使用此方法即可。

list.contains(“Your_String”)

这将返回布尔值true或false