[Java] substring()

코드 속의 "진돌"·2024년 1월 25일

Java

목록 보기
1/2
post-thumbnail

String 문자열에서 원하는 특정 문자를 잘라서 사용해야 할 때가 종종 있다.
이번 포스팅은 문자열을 자르는 방법 중 하나인 substring() 메서드에 대해 다뤄보도록 하겠다.

✅ substring()


java.lang.String 클래스의 substring() 메서드는 문자열의 특정 부분을 잘라내는 데 사용된다.


✅ Method Signature


substring() 메서드는 다음과 같이 2가지 형태로 사용할 수 있다.

public String substring(int startIndex)
public String substring(int startIndex, int endIndex)



1️⃣ substring(int startIndex)

startIndex부터 이후 모든 문자열을 리턴한다.

위 그림과 같이 substring() 메서드에 파라미터를 1개만 전달(int startIndex)하면, 문자열의 startIndex부터 끝까지의 문자열을 잘라서 리턴한다.

이때 index의 값은 0부터 시작한다.


✓ 코드

public class SubstringExample {
	
	public static void main(String[] args) {         
    	String str = "Hello";         
    	
        System.out.println(str.substring(2));  // "llo"
        System.out.println(str.substring(5));  // ""        
        System.out.println(str.substring(-1));  // StringIndexOutOfBoundsException
        System.out.println(str.substring(6));  // StringIndexOutOfBoundsException
   }
}

✓ 출력 결과

llo

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.base/java.lang.String.substring(String.java:1841)
    at SubstringExample.main(SubstringExample.java:8)

1️⃣ str.substring(2);

"Hello" 문자열의 index 2('l')부터 마지막까지 문자열을 잘라서 리턴한다.

llo

2️⃣ str.substring(5);

문자열의 마지막 index(4) + 1 값을 startIndex로 지정하면, 빈 문자열을 리턴한다.


3️⃣ str.substring(-1);, str.substring(6);

startIndex로 음수값이나 범위를 벗어나는 값을 입력하면
StringIndexOutOfBoundsException이 발생한다.

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.base/java.lang.String.substring(String.java:1841)
    at SubstringExample.main(SubstringExample.java:8)



2️⃣ substring(int startIndex, int endIndex)

startIndex(포함)부터 endIndex(불포함)까지의 문자열을 리턴한다.

substring() 메서드에 2개의 파라미터(startIndex, endIndex)를 전달하면 startIndex부터 endIndex 전까지의 문자열을 잘라서 리턴한다.


✓ 코드

public class SubstringExample {
	
	public static void main(String[] args) {         
    	String str = "Hello";         
    	
        System.out.println(str.substring(2, 4));  // "ll"
        System.out.println(str.substring(2, str.length()));  // "llo"
   }
}

✓ 출력 결과

ll
llo

1️⃣ str.substring(2, 4);

startIndex 2부터 endIndex 4 이전까지의 문자열을 잘라서 리턴한다.

ll

2️⃣ str.substring(2, str.length());

startIndex 2부터 마지막 문자열까지를 잘라서 리턴한다.
str.substring(2)와 결과가 같다.

llo
profile
매일 성장하는 주니어 개발자의 기록📝

1개의 댓글

comment-user-thumbnail
2024년 1월 26일

오라클 함수에는 substr이 있어요

SELECT SUBSTR('ABCDEFGH',4,2) 문자열 FROM DUAL;

답글 달기