본문 바로가기
언어 공부하기/JAVA 개념

[Java 자바] indexOf()와 substring() 메소드 사용법 및 예제 알아보기(자바 함수)

by 망댕이 2024. 11. 13.
반응형

자바에서 문자열(String)을 조작할 때 유용한 메소드 중 하나가 indexOf()와 substring()이다. 이 두 메소드를 사용하면 문자열에서 특정 문자의 위치를 찾거나, 원하는 부분만 잘라낼 수 있다.

예를 들어 이메일을 받으면 indexOf()를 이용하여 @위치를 찾아내고 subString을 이용하여  ID와 도메인을 분리할 수 있다.

 

이번 글에서는 indexOf()와 substring()의 동작 원리와 사용법을 예제를 통해 알아보자.

 

▷ indexOf() 메소드

indexOf() 메소드는 특정 문자나 문자열이 처음 등장하는 인덱스를 반환한다.
(만약 찾는 문자열이 존재하지 않으면 -1을 반환한다.)

 

또한 indexOf(String s, int fromIndex)을 사용하면  특정 위치(fromIndex) 이후부터 검색이 가능하다.

int index = 문자열.indexOf(찾을문자또는문자열);
public class IndexOfExample {
    public static void main(String[] args) {
        String str = "Hello, Java Programming!";

        int index1 = str.indexOf("Java");
        int index2 = str.indexOf('P');
        int index3 = str.indexOf("Python"); // 없는 문자열

        System.out.println("문자열: " + str);
        System.out.println("'Java'의 시작 인덱스: " + index1);
        System.out.println("'P'의 인덱스: " + index2);
        System.out.println("'Python'의 인덱스: " + index3);
    }
}
출력결과

문자열: Hello, Java Programming!
'Java'의 시작 인덱스: 7
'P'의 인덱스: 13
'Python'의 인덱스: -1

▷ substring() 메소드

substring() 메소드는 문자열에서 특정 부분을 잘라내 반환한다.

String 부분문자열 = 문자열.substring(시작인덱스);
String 부분문자열 = 문자열.substring(시작인덱스, 끝인덱스);

( 시작인덱스는 포함되고, 끝인덱스는 포함되지 않음.)

 

public class SubstringExample {
    public static void main(String[] args) {
        String str = "Hello, Java Programming!";
        
        String part1 = str.substring(7);       // 인덱스 7부터 끝까지
        String part2 = str.substring(7, 11);  // 인덱스 7부터 10까지

        System.out.println("원본 문자열: " + str);
        System.out.println("7번째 이후: " + part1);
        System.out.println("7번째부터 11번째 전까지: " + part2);
    }
}
원본 문자열: Hello, Java Programming!
7번째 이후: Java Programming!
7번째부터 11번째 전까지: Java

 


indexOf()와 substring() 메소드의 활용

두 메소드를 조합하면 특정 패턴을 찾고 그에 따라 문자열을 추출할 수 있다.

 

ex) 파일 이름과 확장자 추출

public class FileNameExtractor {
    public static void main(String[] args) {
        String filePath = "C:/Users/John/Desktop/file.txt";

        int lastSlashIndex = filePath.lastIndexOf("/"); // 마지막 '/' 위치
        int dotIndex = filePath.lastIndexOf(".");       // 마지막 '.' 위치

        String fileName = filePath.substring(lastSlashIndex + 1, dotIndex); // 파일 이름
        String fileExtension = filePath.substring(dotIndex + 1);            // 확장자

        System.out.println("파일 경로: " + filePath);
        System.out.println("파일 이름: " + fileName);
        System.out.println("파일 확장자: " + fileExtension);
    }
}
출력결과

파일 경로: C:/Users/John/Desktop/file.txt
파일 이름: file
파일 확장자: txt

 

 

이 indexOf()와 substring() 두 메소드는 문자열 조작 작업에서 매우 자주 사용되며, 다양한 상황에서 유용하게 쓰일 수 있다.

궁금한 점이나 추가적인 활용 예제가 있다면 댓글로 알려주세요! 😊

반응형