Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java ArrayList에서 특정 문자열을 검색하는 방법

contains() 메서드란?

Java의 String 클래스가 제공하는 contains() 메서드는 문자열을 매개변수로 받아, 현재 String 객체 안에 해당 문자열이 포함되어 있는지 확인합니다. 문자열이 포함되어 있으면 true, 그렇지 않으면 false를 반환합니다.

이 메서드를 활용하면 ArrayList에 저장된 여러 문자열 중에서 원하는 키워드를 손쉽게 찾을 수 있습니다.

ArrayList에서 문자열 검색하는 절차

  • 검색 대상이 되는 ArrayList 객체를 준비합니다.
  • for-each 루프를 사용하여 ArrayList의 각 요소를 하나씩 순회합니다.
  • 각 요소가 찾고자 하는 문자열을 포함하는지 contains() 메서드로 확인합니다.
  • 조건을 만족하는 요소라면 화면에 출력합니다.

예제 코드

import java.util.ArrayList;

public class FindingString {
    public static void main(String[] args) {
        // ArrayList 객체 생성 및 요소 추가
        ArrayList<String> list = new ArrayList<String>();
        list.add("JavaFX");
        list.add("Java");
        list.add("WebGL");
        list.add("OpenCV");
        list.add("OpenNLP");
        list.add("JOGL");
        list.add("Hadoop");
        list.add("HBase");
        list.add("Java Script");
        list.add("Flume");
        list.add("Mahout");
        list.add("Impala");

        System.out.println("ArrayList의 내용:");
        for (String element : list) {
            if (element.contains("Java")) {
                System.out.println(element);
            }
        }
    }
}

실행 결과

ArrayList의 내용:
JavaFX
Java
Java Script

위 예제에서는 "Java"라는 키워드를 포함하는 모든 요소, 즉 "JavaFX", "Java", "Java Script" 세 개의 문자열이 출력됩니다. contains()는 부분 일치를 검사하기 때문에 키워드가 문자열 중간에 있어도 정상적으로 찾아냅니다.

참고: Stream API를 활용한 대안

Java 8 이상에서는 스트림(Stream)을 사용해 같은 작업을 더 간결하게 처리할 수도 있습니다.

list.stream()
    .filter(element -> element.contains("Java"))
    .forEach(System.out::println);

filter()로 조건에 맞는 요소만 걸러낸 뒤 forEach()로 출력하는 방식으로, 코드가 짧아지고 가독성이 좋아진다는 장점이 있습니다.