문자열에서 특정 문자열이 포함되어 있는지 확인하는 방법을 알아보겠습니다.
Java에서 지원하는 String 클래스 내에 있는 메소드를 이용하는 방법입니다.
String 클래스에서 제공하는 contains()
메소드를 사용해 특정 문자열이 있는지 확인할 수 있습니다.
특정 문자열을 인수로 전달하여 포함되어 있으면 true, 없으면 false를 반환
합니다.
String str = "Woowacourse precourse java";
System.out.println(str.contains("Woowacourse"));
System.out.println(str.contains("woowacourse"));
실행 결과
true
false
contains() 메소드는 대소문자를 구분합니다.
특정 문자열이 존재한다면 해당 특정 문자열의 첫 번째 인덱스가 반환
되고, 없다면 -1이 반환
됩니다.
String str = "Woowacourse precourse java";
System.out.println(str.indexOf(precourse));
System.out.println(str.contains("kotlin"));
실행 결과
12
-1
특정 문자열 precourse
는 12번째 인덱스부터 시작되므로 12
가 반환됩니다.
특정 문자열 Kotlin
은 포함되어 있지 않으므로 -1
이 반환됩니다.
문자열의 특정 인덱스 이후
에서 특정 문자열을 찾고 싶다면 두 번째 인수로 특정 인덱스 값
을 넣어줍니다.
String str = "Woowacourse precourse java";
System.out.println(str.indexOf(Woowacourse, 10));
실행 결과
-1
10번째 인덱스 뒤에 Woowacourse
가 있는지 확인합니다.
찾고자 하는 문자열 Woowacourse
은 0번째 인덱스에 있으므로 -1이 반환됩니다.
indexOf() 메소드와 반대로 lastIndexOf()
메소드는 문자열의 마지막 위치에서부터 특정 문자열을 탐색합니다.
String str = "java1 java2 java3";
System.out.println(str.indexOf(java));
System.out.println(str.lastIndexOf(java));
실행 결과
0
12
문자열의 마지막 위치에서부터 특정 문자열을 찾고 싶으면 lastIndexOf() 메소드를 사용합니다.