Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java substring() 메서드 완벽 가이드: 문법부터 실전 예제까지

Java의 substring() 메서드는 특정 문자열에서 원하는 부분만 잘라 새로운 문자열로 반환하는 기능을 합니다. 이 메서드는 추출하고자 하는 문자들의 시작 인덱스와 끝 인덱스 값을 매개변수로 받으며, 원본 문자열은 변경되지 않고 그대로 유지됩니다.

Java 프로그램을 작성하다 보면 문자열에서 특정 부분만 추출해야 하는 경우가 자주 발생합니다.

이럴 때 바로 substring() 메서드가 유용하게 사용됩니다. substring() 메서드는 지정한 시작 인덱스부터 선택적인 끝 인덱스까지의 부분 문자열을 반환합니다.

이 글에서는 Java에서 substring() 메서드를 사용하는 방법을 살펴보고, 실제 프로그램에 바로 적용할 수 있는 예제도 함께 소개합니다.

Java substring() 메서드 문법

substring() 메서드는 문자열에서 일련의 문자들을 추출하는 기능을 합니다. 어떤 문자들이 추출될지는 각각의 인덱스 값을 기준으로 결정됩니다.

substring() 메서드는 다음과 같이 문자열에 적용합니다:

public String substring(startIndex, endIndex)

substring() 메서드는 두 개의 매개변수를 받습니다:

  • start: 부분 문자열이 시작되는 인덱스 위치입니다. 시작 인덱스는 결과에 포함됩니다. (필수)
  • end: 부분 문자열이 끝나는 인덱스 위치입니다. 끝 인덱스는 결과에 포함되지 않습니다(배타적). 기본값은 문자열의 전체 길이입니다. (선택)

Java에서 문자열은 인덱싱되어 있습니다. 즉, 문자열 내의 개별 문자에 인덱스를 통해 접근할 수 있다는 의미입니다.

예를 들어, 문자열의 첫 번째 문자는 항상 0인 인덱스 번호로 참조하여 가져올 수 있습니다.

인덱스 번호는 0부터 시작하며, 공백, 알파벳, 숫자, 기호를 포함해 문자열의 모든 문자마다 하나씩 증가합니다.

만약 작업 중인 문자열의 길이보다 큰 인덱스 값을 지정하면 StringIndexOutOfBoundsException 예외가 발생합니다. 이 오류를 방지하려면 항상 문자열 범위 안에서 올바른 구간을 추출해야 합니다.

Java substring() 예제

끝 인덱스 없이 substring() 사용하기

커피숍을 운영하고 있다고 가정해 봅시다. 주문이 접수되면 프로그램에서 문자열이 생성되며, 이 문자열에는 주문 번호, 커피 이름, 고객 이름이 저장됩니다.

우리는 주문 번호 이후의 모든 문자를 추출하는 프로그램을 만들고 싶습니다. 주문 번호는 세 자리로 구성되어 있으며, 추출된 정보는 커피를 제조할 바리스타에게 전달됩니다.

주문 번호 뒤의 문자들을 추출하려면 substring() 메서드를 사용하면 됩니다. 특정 지점 이후의 모든 문자를 가져오기 때문에 end 매개변수를 지정할 필요가 없습니다:

public class GetOrderData {
	public static void main(String[] args) {
		String order = new String("020 Latte Eileen");
		System.out.println(order.substring(3));
	}
}

이 코드는 Latte Eileen을 반환합니다. 지정한 인덱스부터 문자열의 마지막 문자까지 모두 포함된 것을 확인할 수 있습니다.

코드를 살펴보겠습니다. 먼저 GetOrderData라는 public 클래스를 정의했습니다. 이 클래스는 고객이 주문한 커피와 이름을 추출하는 역할을 합니다. 그리고 주문 정보를 저장하는 변수를 선언했으며, 덕분에 코드 전체에서 고객의 주문을 참조할 수 있습니다.

그다음 substring() 메서드를 사용해 인덱스 3 이후의 모든 문자를 추출했습니다. 이때 인덱스 3에 해당하는 문자도 결과에 포함됩니다.

마지막으로 println() 메서드를 사용해 고객 이름과 커피 주문 내용을 콘솔에 출력합니다.

끝 인덱스를 지정하여 substring() 사용하기

이번에는 커피의 주문 번호만 추출하고 싶다고 가정해 봅시다. 주문 번호는 세 자리 숫자이며, 고객의 주문 처리가 곧 진행됨을 알리는 화면에 표시됩니다.

주문 번호는 주문 문자열의 맨 앞에 위치하며 세 자리로 구성되어 있습니다. substring() 메서드를 사용해 주문 번호를 추출할 수 있습니다:

public class GetOrderNumber {
	public static void main(String[] args) {
		String order = new String("020 Latte Eileen");
		System.out.println(order.substring(0, 3));
	}
}

이 코드는 다음과 같은 결과를 반환합니다: 020

substring() 메서드를 사용해 문자열에서 인덱스 0부터 3 사이의 문자들을 추출했습니다. 이 문자들이 바로 우리가 얻고자 하는 주문 번호입니다.

여기서 문자열 인덱스는 0부터 시작한다는 점을 꼭 기억하세요. 또한 end 매개변수는 지정한 최종 값(여기서는 3)을 결과에 포함하지 않습니다. 그렇기 때문에 인덱스 0부터 3까지 지정한 것입니다.

마무리

substring() 메서드는 기존 문자열에서 원하는 범위의 문자들을 추출합니다. 시작 인덱스와 끝 인덱스를 받아 해당 구간의 부분 문자열을 생성하며, 이 과정에서 새로운 문자열이 만들어질 뿐 원본 문자열은 수정되지 않습니다.

이제 Java substring() 메서드를 자신 있게 활용할 준비가 되었습니다. 실습을 통해 다양한 문자열 조작에 직접 적용해 보세요!