Java 문자열 String 클래스에서 특정 문자가 포함되어 있는지 확인하기 위해 사용하는 3가지 메서드를 사용할 수 있다.
1. contains()
example
public class ContainsTest{
public static void main(String[] args){
String str = "my java test";
System.out.println(str.contains("java")); // true
System.out.println(str.contains(" my")); // false
System.out.println(str.contains("JAVA")); // false
System.out.println(str.contains("java test")); // true
System.out.println(str.contains(" ")); // true
}
}
2. indexOf()
example
public class StringContainsString {
public static void main(String[] args) {
String str = "hello Java!";
// indexOf(String str)
System.out.println(str.indexOf("he")); // 0
System.out.println(str.indexOf("Java")); // 6
System.out.println(str.indexOf("java")); // -1
System.out.println(str.indexOf(" ")); // 5
// indexOf(int ch)
System.out.println(str.indexOf('l')); // 2
// indexOf(int ch, int fromIndex)
/* 두번째 파라미터는 start index이므로 index 3부터 문자열을 찾는다. */
System.out.println(str.indexOf('l', 3)); // 3
System.out.println(str.indexOf('l', 4)); // -1
}
}
→ 문자열을 검색할 때 정확한 위치를 알고자 하면 indexOf()를, 단순히 포함 여부만을 알고자 하면 contains() 메서드를 사용한다.
3. matches()
example
public class StringContainsString {
public static void main(String[] args) {
String str = "hello Java!";
System.out.println(str.matches("he")); // false
System.out.println(str.matches("(.*)he(.*)")); // true
}
}
설명
- str.matches("he");
문자열이 정확히 "he"여야만 true를 리턴한다.
- str.matches("(.*)he(.*)");
(.*)는 0번 이상의 문자가 나오는 경우를 나타내는 정규식이다.
즉, "(.*)he(.*)" -> 정규식은 문자의 어느 곳에든 "he"라는 문자열이 나올 경우 true를 리턴한다.
정규식 패턴 | |
---|---|
숫자만 | ^[0-9]*$ |
영문만 | ^[a-zA-Z]*$ |
영문만, 띄어쓰기가능 | /^[a-zA-Z\s]+$/ |
한글만 | ^[가-힣]*$ |
한글만, 띄어쓰기가능 | /^[가-힣\s]+$/ |
한글 & 영문만 | /^[가-힣a-zA-Z]+$/ |
영문 & 숫자만 | ^[a-zA-Z0-9]*$ |
^[a-zA-Z0-9]+@[a-zA-Z0-9]+$ | |
휴대폰 | ^01(?:0 |
일반전화 | ^\d{2,3} - \d{3,4} - \d{4}$ |
URL | /^(file |
주민등록번호 | \d{6} - [1-4]\d{6} |
IP 주소 | ([0-9]{1,3}) . ([0-9]{1,3}) . ([0-9]{1,3}) . ([0-9]{1,3}) |