String startsWith endsWith란?
자바 String 클래스의 startsWith와 endsWith 메소드는 문자열이 특정 문자열로 시작하거나 끝나는지 판별합니다.
특정 문자로 시작하거나 끝나면 true, 그렇지 않으면 false를 반환합니다.
startsWith 메서드 사용법
startsWith(String prefix): 문자열이 지정된 접두사로 시작하는지 확인합니다.
startsWith(String prefix, int toffset): 문자열의 특정 위치부터 시작하여 지정된 접두사로 시작하는지 확인합니다.
startsWith 예제
아래와 같은 코드로 사용합니다.
String s = "apple banana";
System.out.println(s.startsWith("app"));
System.out.println(s.startsWith("app", 3));
System.out.println(s.startsWith("app", 0));
첫 번째 예제는 문자열 s가 "app"으로 시작하는지 확인합니다.
두 번째 예제는 toffset을 3으로 설정하여 문자열의 세 번째 인덱스부터 "app"으로 시작하는지 확인합니다.
세 번째 예제는 문자열의 시작부터 "app"으로 시작하는지 확인합니다.
주의사항
toffset이 음수이거나 문자열의 길이보다 크면 false를 반환합니다.
endsWith 메서드 사용법
endsWith(String suffix): 문자열이 지정된 접미사로 끝나는지 확인합니다.
endsWith 예제
다음과 같이 사용합니다.
String s = "apple banana";
System.out.println(s.endsWith("ana")); // true
System.out.println(s.endsWith("ban")); // false
첫 번째 예제는 문자열 s가 "ana"로 끝나는지 확인합니다.
두 번째 예제는 문자열 s가 "ban"으로 끝나는지 확인합니다.
endsWith 메서드의 내부 구현
endsWith 메서드는 내부적으로 startsWith 메서드를 사용하여 구현됩니다.
구체적으로는 문자열의 끝 부분이 주어진 접미사와 일치하는지 확인하기 위해, 문자열의 길이에서 접미사의 길이를 뺀 인덱스부터 시작하여 비교합니다.
// endWith 내부 구현 코드
public boolean endsWith(String suffix) {
return startsWith(suffix, value.length - suffix.value.length);
}
예제 설명
String s = "apple banana";
System.out.println(s.endsWith("ana")); // true
위 예제에서, "apple banana" 문자열의 길이는 12입니다.
그리고 "ana" 접미사의 길이는 3입니다.
따라서, 12 - 3 = 9 인덱스부터 비교를 시작합니다.
"apple banana"의 9번째 인덱스부터 끝까지는 "ana"이므로 endsWith("ana")는 true를 반환합니다.
읽으면 좋은 글
[Java] String - contains : 문자열 포함 여부