자바 문자열과 관련된 함수 중에서 문자 중에서 해당 내용이 포함되어 있는지를 확인하는 메서드를 확인해보려 합니다.
- startsWith : 문자열의 시작에 원하는 문자가 있는지 확인하는 메서드
- EndsWith : 문자열의 끝에 원하는 문자가 있는지 확인하는 메서드
- contains : 문자열 안에 원하는 문자가 있는지 확인하는 메서드
1. startsWith : A 문자열이 B로 시작한다면 true를 반환, 아니라면 false를 반환합니다.
- A.startsWith(B, [C])
- A에는 확인하고자 하는 문자열로 필수로 작성해야 합니다.
- B에는 찾고자 하는 문자열로 필수로 작성해야 합니다.
- C는 인덱스 값으로 필수로 작성해야 하는 사항은 아니지만 작성하지 않으면 B 인자가 A 문자열의 처음부터 포함되는지를 확인합니다.
간단한 예시로 추가적인 설명을 하겠다.
String abc = "123";
1. System.out.println(abc.startsWith("1")); // true
2. System.out.println("1".startsWith(abc)); // false
3. System.out.println(abc.startsWith("13")); // false
4. System.out.println(abc.startsWith("3", 2)); // true
- 변수 abc는 문자열 "123"로 변수 abc 문자열의 시작은 "1"로 시작하기 때문에 true를 반환합니다.
- 문자열 "1"의 시작은 "123"이 될 수 없으므로 false를 반환합니다.
- 변수 abc는 문자열 "123"로 문자열의 시작은 "13"이 아니라서 false를 반환합니다.
- startsWith는 두 번째 파라미터로 문자열의 index값을 사용할 수 있습니다.
- 문자열의 인덱스는 0부터 시작하므로 인덱스 2의 문자는 "3"이기 때문에 true를 반환합니다.
2. endsWith : A 문자열이 B로 끝나면 true를 반환, 아니라면 false를 반환합니다.
- A.endsWith(B)
String abc = "123";
1. System.out.println(abc.endsWith("3")); // true
2. System.out.println("3".endsWith(abc)); // false
3. System.out.println(abc.endsWith("13")); // false
- 변수 abc는 문자열 "123"로 변수 abc 문자열의 마지막은 "3"으로 끝나기 때문에 true를 반환합니다.
- 문자열 "3"의 끝은 "123"이 될 수 없으므로 false를 반환합니다.
- 변수 abc는 문자열 "123"으로 문자열의 끝은 "13"이 아니라서 false를 반환합니다.
3. contains : A 문자열에 B가 포함되면 true를 반환, 아니라면 false를 반환합니다.
- A.contains(B)
String abc = "123 456";
1. System.out.println(abc.contains("3")); // true
2. System.out.println("3".contains(abc)); // false
3. System.out.println(abc.contains("45")); // true
4. System.out.println(abc.contains("345")); // false
5. System.out.println(abc.contains("3 45")); // true
- 변수 abc는 문자열 "123 456"으로 변수 abc 문자열 안에 "3"은 포함돼서 true를 반환합니다.
- 문자열 "3"에는 "123 456"을 포함하지 않으므로 false를 반환합니다.
- 변수 abc는 문자열 "123 456"으로 변수 문자열 안에 "45"은 포함돼서 true를 반환합니다.
- 변수 abc는 문자열 "123 456"로 변수 문자열 안에 "345"는 포함되지 않아서 false를 반환합니다.
- 변수 abc는 문자열 "123 456"로 변수 문자열 안에 "3 45"는 포함되서 true를 반환합니다.
위의 예시처럼 starsWith, endsWith와 contains 메서드의 사용 방식은 유사합니다.
차이점으로는 startsWith에만 문자열 인덱스를 두 번째 파라미터로 사용할 수 있다는 차이점,
각 메서드가 문자열을 찾는 위치가 다르다는 두 가지 차이점뿐입니다.
공통점은 A.메서드(B)로 A라는 문자열 안에 B라는 문자열이 메서드의 조건에 따라 boolean 값을 반환하는 메서드라는 사실입니다.
추가로 의외로 실수를 많이 하는 게 A와 B를 착각해서 사용하는 경우가 있다는 점입니다.
기본적으로 A라는 문자열이 더 큰 범위이고 B라는 문자열은 더 작은 범위를 가지고 있습니다.
마지막으로 공백(" ") 또한 문자이기 때문에 문자열 안에 공백이 들어가 있다면 공백까지 정확하게 작성해줘야 합니다.
위 사항들만 정확히 인지하고 있다면 해당 메서드로 인한 문제는 발생하지 않을 거라 생각합니다.
이상으로 글을 마치겠습니다.
도움이 되셨다면 좋아요만 부탁드릴게요. 감사합니다.
'백엔드 > JAVA' 카테고리의 다른 글
[JAVA] 문자열 비교하는 방법과 NullPointerExcepion 해결법 (0) | 2022.10.20 |
---|---|
[JAVA] 문자열과 관련된 메소드 (2) | 2022.10.18 |
[JAVA] 객체 자료형 이해하기 (0) | 2021.12.25 |
추상 클래스, 내부 클래스, 인터페이스 (0) | 2021.08.31 |
제어자 (0) | 2021.08.31 |
최근댓글