본문 바로가기

공부 자료/자바[JAVA]

[Java] 문자열/배열에 특정 값 포함 여부 확인

[문자열]

방법1. contains()

 - 포함 여부를 boolean 값으로 반환

String str = "banana";
String s = "ana";
String a = "bbb";

System.out.println(str.contains(s)); // true
System.out.println(str.contains(a)); // false

 

방법2. indexOf()

 - 포함되는 시작 부분의 인덱스 값을 반환하며, 포함되지 않을 경우 -1을 반환

String str = "banana";
String s = "ana";
String a = "bbb";

System.out.println(str.indexOf(s)); // 1
System.out.println(str.contains(a)); // -1

 

방법3. matches()

 - boolean 값을 반환하며, 이는 정규식과 비교해야 함

String str = "banana";

System.out.println(str.matches("ana")); // true
Systme.out.println(str.matches("(.*)na(.*)"); // true
System.out.println(str.matches("bbb")); // false

 

[배열]

방법1. Array/contains 이용

Arrays.asList(배열이름).contains(특정값)

방법1-1. 특정값이 배열 내에 어디에 위치하는지 인덱스를 알고 싶을 경우

Arrays.asList(배열이름).indexOf(특정값)

 

방법2. equals 이용

for(String s: 배열이름){
    if(s.equals(특정값))
    	return true;
}
return false;

 

 

배열에서 String 값이 아닌 int 형의 경우 contains로 찾을 수 없다.

이 때는 anyMatch()를 이용해야 한다.

 

방법3. anyMatch 이용

Arrays.asList(배열이름).anyMatch(i -> i = 특정값)