본문 바로가기

Language/Java / JSP

[Java] 문자열 포함여부 확인(검색)방법 - contains, indexOf, matches

반응형

특정 문자열에서 원하는 문자가 포함되어 있는지 확인해야 될 때가 있다.
주로 문자열 포함 여부에 따라서 if문과 같은 분기문을 작성하거나 할때가 그러한데, Java에서는 여러가지 방법으로 문자열 검색이 가능하다.

그중에서도 오늘은 contains, indexOf, matches를 이용하여 문자열을 검색하는 방법을 포스팅 하겠다.

[예제]

public class StringFinder {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		
		String txt1 = "가나다라" ;
		String txt2 = "해당 내용은 테스트 입니다" ;
		String txt3 = "가격은 29,000원 입니다" ;
		
		
		
		// contains를 이용한 방법(true, false 반환)
		if(txt1.contains("나다"))
			System.out.println("문자열 있음!");
		else
			System.out.println("문자열 없음!");
		
		
		// indexOf를 이용한 방법
		if(txt2.indexOf("테스트") > -1)
			System.out.println("문자열 있음!");
		else
			System.out.println("문자열 없음!");
		
		
		// matches를 이용한 방법
		if(txt2.matches(".*테스트.*"))
			System.out.println("문자열 있음!");
		else
			System.out.println("문자열 없음!");
		
		
		// matches를 이용하여 정규 표현식으로 문자열에 숫자가 있는지 확인
		if(txt3.matches(".*[0-9].*"))
			System.out.println("숫자 있음!");
		else
			System.out.println("숫자 없음!");

	}

}



구분 

설명

포함

미포함

 contains

 문자열에 검색하고자 하는 문자가 있는지 확인

 true

false

 indexOf

 문자열에서 검색하는 문자의 위치를 반환

 문자 위치

-1

 matches

 정규식을 이용하여 문자열을 검색한다.

 특정 문자열을 검색할때 사용하기 보다는 한글, 숫자 등과 같이 해당 형태의 텍스트가 존재하는지 확인할때 사용하면 좋다

 true

false