안녕하세요
프로그래밍을 하다보면 원하는 문자의 위치를 찾아내야 하는 경우가 있습니다
저 같은 경우 주로 경로에 있는 파일명을 찾는 기능을 구현하거나 확장자를 찾는 기능을 구현할 때 indexOf를 사용하여 프로그램을 구현했던 걸로 기억합니다
이번 포스팅에서는 문자열에서 원하는 문자를 찾는 자바의 기본 메서드인 indexOf와 lastIndexOf에 대해서 알아보겠습니다
목차
IndexOf
lastIndexOf
indexOf
indexOf는 4가지 방법의 사용법이 있습니다
indexOf를 사용하면 아래처럼 4개의 오버로딩 메서드를 확인할 수 있어요
indexOf(int ch) : 유니코드표의 값을 사용하여 원하는 문자열의 위치를 찾습니다
유니코드표는 아래 이미지를 참고바랍니다
indexOf(String str) : 문자열에서 같은 문자의 위치를 찾습니다
indexOf(int ch, int fromIndex) : 유니코드표의 값을 사용하여 원하는 문자열을 찾지만 첫 번째부터 찾는 것이 아닌 fromIndx의 값에서 시작해서 문자열을 찾아줍니다
indexOf(String str, int fromIndex) : 문자열에서 같은 문자의 위치를 찾지만 fromIndex의 값에서 시작해서 문자열을 찾아줍니다
참고사항 : fromIndex는 0부터 시작하는 것이 1부터 시작합니다
참고사항2 : 찾는 문자열이 없는 경우 -1을 리턴해줍니다
indexOf를 사용할 때 위의 두 가지 참고사항만 알면 될 것 같습니다
이제 indexOf를 사용한 예제를 알아보겠습니다!
예제 코드
4개 다 동일하게 "Hello World!"에서 indexOf를 사용해서 "o"를 찾는 메서드입니다
첫 번째와 세 번째는 동일하게 4를 출력합니다
두 번째와 네 번째는 시작문자열이 5이므로 7을 출력합니다
public class indexOf {
public static void main(String[] args) {
String str = "Hello World!";
System.out.println("IndexOf('Int형') : " + str.indexOf(111));
System.out.println("IndexOf('Int형', 시작int) : " + str.indexOf(111, 5));
System.out.println("IndexOf('문자형') : " + str.indexOf("o"));
System.out.println("IndexOf('Int형', 시작int) : " + str.indexOf("o", 5));
}
}
결과 화면
lastIndexOf
indexOf와는 반대로 lastIndexOf는 오른쪽 즉 뒤에서부터 문자열을 찾을 때 사용하는 메서드입니다
indexOf와 사용법은 같습니다
indexOf와 똑같이 사용법도 4개가 있습니다
indexOf(int ch) : 유니코드표의 값을 사용하여 원하는 문자열의 위치를 뒤에서부터 찾습니다
indexOf(String str) : 문자열에서 같은 문자의 위치를 뒤에서부터 찾습니다
indexOf(int ch, int fromIndex) : 유니코드표의 값을 사용하여 원하는 문자열을 찾지만 마지막에서부터 찾는 것이 아닌 fromIndx의 값에서 시작해서 문자열을 찾아줍니다
indexOf(String str, int fromIndex) : 문자열에서 같은 문자의 위치를 찾지만 뒤에서부터 fromIndex의 값에서 시작해서 문자열을 찾아줍니다
이제 lastIndexOf를 사용한 예제를 알아보겠습니다
예제 코드
4개 다 동일하게 뒤에서부터 "o"를 찾는 예제입니다
첫 번째와 세 번째는 뒤에서부터 "o"를 찾아 값이 7이 나옵니다
두 번째와 네 번째는 뒤에서부터 "o"를 찾지만 fromIndex가 5이므로 4를 출력합니다
public class lastIndexOf {
public static void main(String[] args) {
String str = "Hello World!";
System.out.println("LastIndexOf('Int형') : " + str.lastIndexOf(111));
System.out.println("LastIndexOf('Int형', 시작int) : " + str.lastIndexOf(111, 5));
System.out.println("LastIndexOf('문자형') : " + str.lastIndexOf("o"));
System.out.println("LastIndexOf('Int형', 시작int) : " + str.lastIndexOf("o", 5));
}
}
결과 화면
여기까지 indexOf와 lastIndexOf의 사용법에 대해서 알아봤습니다
자바를 공부하는 분들, 자바 프로그래밍을 하는 분들에게 이 포스팅이 도움이 되었으면 좋겠습니다!!
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 문자열 반복 메서드 repeat 대해서 알아봅시다 (0) | 2021.05.16 |
---|---|
[JAVA] Arrays.fill() 사용 방법(배열의 값 일괄초기화) (0) | 2021.05.16 |
[JAVA] Cannot cast from Float to int 에러 해결 (0) | 2021.05.16 |
[JAVA] 형 변환 방법(문자형 <-> 정수형 <-> 실수형) (0) | 2021.05.16 |
[JAVA] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점 (0) | 2021.05.16 |