파라미터로 입력받은 CharSequence s를 문자열이 포함하고 있는지 여부를 리턴합니다. (대소문자 구분합니다.)
package com.namji95.javabasic;
public class StringClass {
public static void main(String[] args) {
/*
* String Class에서 제공되는 3가지 메소드 알아보기
* 1. contains()
* 2. indexOf()
* 3. matches()
*/
String str = "hello Java~";
System.out.println(str.contains("he"));
System.out.println(str.contains("Java"));
System.out.println(str.contains("java"));
System.out.println(str.contains("~"));
}
}
2. indexOf()
파라미터로 입력받은 문자나 문자열이 원본 문자열에서 처음 나타나는 index를 찾아서 index 위치를 리턴해 줍니다.
만약, 원본 문자열에 찾는 문자나 문자열이 없으면 -1을 리턴합니다.
indexOf (int ch)
indexOf (int ch, int fromIndex)
indexOf (String str)
indexOf (String str, int fromIndex)
package com.namji95.javabasic;
public class StringClass {
public static void main(String[] args) {
/*
* String Class에서 제공되는 3가지 메소드 알아보기
* 1. contains()
* 2. indexOf()
* 3. matches()
*/
String str = "hello Java~";
//indexOf (String str)
System.out.println(str.indexOf("he"));
System.out.println(str.indexOf("Java"));
System.out.println(str.indexOf("java"));
System.out.println(str.indexOf("~"));
//indexOf (int ch)
System.out.println(str.indexOf(" "));
//indexOf (int ch, int fromIndex)
System.out.println(str.indexOf("o", 6));
System.out.println(str.indexOf("o", 4));
}
}
str.indexOf("he"); "he"가 나오는 첫번째 index는 0입니다.
str.indexOf("Java"); "Java"가 나오는 첫번째 index는 6입니다.
str.indexOf("java"); indexOf() 메소드는 대소문자를 구분합니다. 때문에 "java"라는 문자를 찾을 수 없기 때문에 -1을 출력했습니다.
str.indexOf("~"); "~" 특수문자가 나오는 첫번째 index는 10입니다.
str.indexOf(" "): 빈 공백이 나오는 첫번째는 5입니다.
str.indexOf(" "): *대소문자 주의 "J"가 첫번째로 나오는 index는 6입니다.
str.indexOf("o", 6); 두번째 파라미터의 값은 Start Index를 의미합니다. 즉, 원본 문자열에서 첫번째 파라미터로 찾고자 하는 문자열을 지정해 줍니다. 그리고 두번째 파라미터로 원본 문자열의 시작점을 알려줘 내가 원하는 위치로부터 찾고자 하는 문자열의 위치를 찾을 수 있습니다. 그래서 결과가 hello Java~에서 6번째 이후로 o라는 문자는 없기 때문에 -1을 출력합니다.
str.indexOf("o", 4); 이번에는 원본 문자열의 4번째부터 o를 찾기 때문에 4를 출력합니다.
3. matches()
정규식을 이용합니다. 문자열에 정규식과 일치하는 부분이 있는지 체크하는 메소드입니다.
파라미터에 정규식을 넣어주어야 합니다.
matches(String regex)
package com.namji95.javabasic;
public class StringClass {
public static void main(String[] args) {
/*
* String Class에서 제공되는 3가지 메소드 알아보기
* 1. contains()
* 2. indexOf()
* 3. matches()
*/
String str = "hello Java~";
System.out.println(str.matches("he"));
System.out.println(str.matches("(.*)he(.*)"));
}
}
str.matches("he); 정규식을 사용하지 않고 출력하면 false가 출력되는 것을 확인할 수 있습니다. 이 경우 문자열이 정확히 "he"여야만 true가 출력됩니다. * String str = "he"; 이렇게 변수를 지정해 줘야 true가 출력됩니다.
str.matches("he"); 이번에는 정규식을 사용한 출력을 보면 true가 출력되는 것을 확인할 수 있습니다. (.*)는 0번 이상의 문자가 나오는 경우를 나타내는 정규식입니다. 즉, "(.*)he(.*)" 정규식은 문장의 어느 곳에서든 "he"라는 문자열이 나올 경우 true를 출력합니다.