안녕하세요. 오늘은 자바 프로그래밍에서 문자열을 조작하고 부분 문자열을 추출하는 중요한 기능을 다루는 주제로 포스팅하려고 합니다. 자바의 substring 메서드를 효과적으로 활용하는 방법과 다양한 활용 사례를 살펴보겠습니다.
1. substring이란?
자바에서 substring은 문자열을 다룰 때 사용되는 메서드 중 하나로, 원본 문자열에서 부분 문자열을 추출하는 데에 사용됩니다. 이 메서드는 시작 인덱스와 종료 인덱스를 지정하여 원하는 부분 문자열을 얻을 수 있습니다.
기본 구조
String result = originalString.substring(startIndex, endIndex);
- originalString
원본 문자열입니다. - startIndex
추출하려는 부분 문자열의 시작 인덱스입니다. 이 인덱스는 포함됩니다. - endIndex
추출하려는 부분 문자열의 종료 인덱스입니다. 이 인덱스는 포함되지 않습니다.
startIndex와 endIndex를 지정하여 원본 문자열에서 해당 범위의 부분 문자열을 얻을 수 있습니다. substring 메서드는 새로운 문자열을 반환하며, 원본 문자열을 변경하지 않습니다. 반환된 문자열은 원본 문자열의 일부분으로 만들어집니다.
예시 코드
String originalString = "Hello, World!";
String result = originalString.substring(7, 12);
System.out.println(result); // 출력: "World"
substring 메서드는 문자열에서 원하는 부분을 잘라내어 필요한 작업을 수행하는 데 유용하게 활용됩니다.
2. substring 메서드의 활용
1. 부분 문자열 추출 (한 인덱스만 지정)
substring 메서드를 호출할 때, 시작 인덱스만 지정하면 해당 인덱스부터 문자열 끝까지의 부분 문자열을 반환합니다. 시작 인덱스를 포함하고 문자열의 끝까지 포함합니다.
String originalString = "Hello, World!";
String result = originalString.substring(7);
System.out.println(result); // 출력: "World!"
2. 부분 문자열 추출 (시작과 종료 인덱스 지정)
시작 인덱스와 종료 인덱스를 모두 지정하면 시작 인덱스는 포함하고, 종료 인덱스 직전까지의 부분 문자열을 반환합니다. 종료 인덱스는 포함되지 않습니다.
String originalString = "Hello, World!";
String result = originalString.substring(7, 12);
System.out.println(result); // 출력: "World"
substring 메서드는 문자열을 자르거나 부분 문자열을 추출할 때 유용하게 사용됩니다. 시작과 종료 인덱스를 적절히 조절하여 필요한 부분 문자열을 얻을 수 있습니다.
3. substring의 음수 인덱스
substring 메서드에서 음수 인덱스를 사용하는 것은 가능합니다. 음수 인덱스를 사용할 경우, 문자열의 뒤에서부터 인덱싱됩니다.
1. 음수 startIndex
음수 startIndex를 사용하면 문자열의 뒤에서부터 시작 위치를 계산합니다. -1은 문자열의 마지막 문자를 가리키고, -2는 끝에서 두 번째 문자를 가리킵니다.
String originalString = "Hello, World!";
String result = originalString.substring(-5); // 음수 인덱스 사용
System.out.println(result); // 출력: "World!"
2. 음수 endIndex
음수 endIndex를 사용하면 문자열의 뒤에서부터 종료 위치를 계산합니다. -1은 문자열의 마지막 문자를 가리키고, -2는 끝에서 두 번째 문자를 가리킵니다. 종료 인덱스는 해당 인덱스 직전까지의 문자열을 추출합니다.
String originalString = "Hello, World!";
String result = originalString.substring(7, -1); // 음수 인덱스 사용
System.out.println(result); // 출력: "World"
음수 인덱스를 사용할 때 주의사항
- startIndex가 -1이면 문자열의 마지막 문자부터 시작하며, endIndex가 -1이면 문자열의 마지막 문자를 종료로 선택합니다.
- startIndex가 -2이면 문자열의 뒤에서 두 번째 문자부터 시작하며, endIndex가 -2이면 문자열의 뒤에서 두 번째 문자를 종료로 선택합니다.
- 음수 인덱스를 사용할 때 문자열 길이를 벗어나는 경우 StringIndexOutOfBoundsException 예외가 발생할 수 있으므로 주의가 필요합니다.
음수 인덱스를 사용하면 문자열의 뒤에서부터 특정 부분 문자열을 추출할 수 있어 유용하게 활용될 수 있습니다.
4. substring 사용시 주의사항
1. 인덱스 범위 확인
substring 메서드의 매개변수로 주어지는 시작 인덱스(beginIndex)와 종료 인덱스(endIndex)는 반드시 문자열의 길이 범위 내에 있어야 합니다. 그렇지 않으면 StringIndexOutOfBoundsException 예외가 발생합니다. 항상 인덱스 범위를 확인하고 유효한 범위 내에서 사용해야 합니다.
String text = "Hello, World!";
String result = text.substring(7, 14); // 유효한 범위 (7부터 13까지)
2. 종료 인덱스 미포함
substring 메서드는 시작 인덱스부터 종료 인덱스 직전까지의 문자열을 반환합니다. 이러한 동작을 고려하여 인덱스를 지정해야 합니다. 종료 인덱스에 해당 문자를 포함하려면 1을 더한 값을 사용해야 합니다.
String text = "Hello, World!";
String result = text.substring(0, 5); // "Hello"
3. 음수 인덱스 사용
substring 메서드에서는 음수 인덱스를 사용할 수 있으며, 이 경우 문자열의 뒤에서부터 인덱싱됩니다. 음수 인덱스를 사용할 때는 주의하고, 범위를 잘 지정해야 합니다.
String text = "Hello, World!";
String result = text.substring(-5); // 유효한 범위 (뒤에서부터 5번째 문자부터 끝까지)
4. 원본 문자열 변경 불가
substring 메서드는 새로운 문자열을 반환하며, 원본 문자열을 변경하지 않습니다. 따라서 반환된 문자열을 변수에 할당하거나 활용해야 합니다.
String text = "Hello, World!";
String subString = text.substring(7, 12); // "World"
5. NullPointerException 방지
substring 메서드를 사용할 때, 원본 문자열이 null이 아닌지 확인해야 합니다. null인 문자열에 대해 substring을 호출하면 NullPointerException이 발생합니다.
String text = null;
String result = text.substring(0, 5); // NullPointerException 발생
substring 메서드를 사용할 때 이러한 주의사항을 염두에 두면 문자열 조작 시 예외 상황을 방지할 수 있습니다.
최종 정리
오늘은 자바 substring 메서드에 대한 기본적인 내용을 살펴보았습니다. substring 메서드를 사용하여 문자열에서 원하는 부분 문자열을 추출하고 조작하는 방법에 대해 배우고, 문자열 다루기에 있어서 이 강력한 메서드를 활용하면 다양한 작업을 보다 효과적으로 수행할 수 있습니다.
감사합니다.
'Java > java' 카테고리의 다른 글
자바 Map 키-값 쌍으로 데이터 관리하기 (0) | 2023.10.09 |
---|---|
자바 foreach 루프의 기초와 활용 알아보기 (0) | 2023.10.06 |
자바 indexOf 메서드의 문자열 검색와 위치 확인하기 (0) | 2023.10.04 |
Java Stream을 활용한 데이터 처리와 활용 (0) | 2023.10.03 |
자바 Collections Framework에 대한 소개와 활용 방법 (0) | 2023.10.02 |