Home

(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드

Published in java
January 09, 2025
1 min read
(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드

안녕하세요, 코딩하는곰입니다! 오늘은 Java에서 가장 빈번하게 사용되는 문자열 처리 메소드인 substring, replace, indexOf에 대해 깊이 있게 알아보겠습니다. 20년간의 Java 개발 경험을 바탕으로 실제 프로젝트에서 활용할 수 있는 실용적인 예제와 함께 설명드리겠습니다. 문자열 처리는 프로그래밍의 기초이지만, 제대로 이해하지 못하면 예상치 못한 버그를 만날 수 있습니다. 이 글을 통해 여러분의 Java 문자열 처리 실력을 한 단계 업그레이드하시길 바랍니다.

1. 문자열 자르기 - substring() 메소드 심층 분석

Java에서 문자열의 특정 부분을 추출할 때 사용하는 substring() 메소드는 두 가지 형태로 제공됩니다.

String str = "Hello, World!";
// 1. 시작 인덱스만 지정 (인덱스 7부터 끝까지)
String sub1 = str.substring(7); // "World!"
// 2. 시작 인덱스와 종료 인덱스 지정 (인덱스 0~5)
String sub2 = str.substring(0, 5); // "Hello"

핵심 포인트

  • 인덱스는 0부터 시작
  • endIndex는 포함되지 않음 (endIndex-1까지 추출)
  • StringIndexOutOfBoundsException 주의
  • 메모리 효율: Java 7u6 이후부터는 새로운 char[] 생성하지 않음
    실무 적용 팁
  • 파일 경로에서 확장자 추출: filename.substring(filename.lastIndexOf(".")+1)
  • 대용량 문자열 처리 시 new String(str.substring(...))으로 명시적 생성 권장

(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드
(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드


2. 문자열 치환 - replace() 계열 메소드 마스터하기

Java에서 문자열 치환을 위해 제공되는 메소드들은 다음과 같습니다:

String original = "apple banana apple";
// 문자 치환
String replacedChar = original.replace('a', 'A'); // "Apple bAnAnA Apple"
// 문자열 치환
String replacedStr = original.replace("apple", "orange"); // "orange banana orange"
// 정규식 치환 (첫 번째 매칭만)
String replacedFirst = original.replaceFirst("a.*? ", "A "); // "Apple banana apple"
// 정규식 치환 (전체)
String replacedAll = original.replaceAll("a.*? ", "A "); // "apple A A"

성능 비교

  • replace() vs replaceAll(): 정규식 사용 유무에 따라 5~10배 성능 차이
  • 대량 치환 시 StringBuilder와 커스텀 로직이 더 효율적일 수 있음
    실무 사례
  • 개인정보 마스킹: tel.replaceAll("(\\d{3})-\\d{4}-(\\d{4})", "$1-****-$2")
  • HTML 태그 제거: html.replaceAll("<[^>]*>", "")

(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드
(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드


로또 번호를 QR코드로 빠르게 확인하고 싶다면, AI 기반 로또 번호 추천 앱 지니로또AI를 다운로드해보세요.

3. 문자열 검색 - indexOf()와 친구들 완벽 이해

문자열 내 검색을 위한 주요 메소드들:

String text = "Java is to JavaScript what car is to carpet.";
// 기본 검색
int idx1 = text.indexOf("Java"); // 0
int idx2 = text.lastIndexOf("Java"); // 11
// fromIndex 사용
int idx3 = text.indexOf("Java", 1); // 11
// 문자 검색
int idx4 = text.indexOf('J'); // 0
// 포함 여부 확인
boolean contains = text.contains("car"); // true

고급 활용 패턴

  • 모든 발생 위치 찾기:
List<Integer> positions = new ArrayList<>();
int index = text.indexOf("Java");
while (index >= 0) {
positions.add(index);
index = text.indexOf("Java", index + 1);
}

성능 고려사항

  • contains()는 내부적으로 indexOf() 사용
  • 반복 검색 시 Boyer-Moore 알고리즘 구현 고려
  • 대소문자 무시 검색: text.toLowerCase().indexOf("java".toLowerCase())

(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드
(Java 기초) 문자열 자르기(substring), 치환(replace), 검색(indexOf) 완벽 가이드


🍵 면역력과 활력을 챙기고 싶다면 한 번쯤 확인해볼, 인플핏 데이 레몬버베나 다이어트를 참고해보세요.

오늘은 Java 문자열 처리의 핵심인 substring, replace, indexOf 메소드에 대해 깊이 있게 알아보았습니다. 이 세 가지 메소드만 제대로 활용해도 문자열 처리 관련 문제의 80%는 해결할 수 있습니다. 글에서 소개한 실무 팁들을 프로젝트에 적용해 보시길 바랍니다. 다음 시간에는 더 고급 문자열 처리 기법에 대해 알아보겠습니다. 질문이나 요청이 있으면 댓글로 남겨주세요. 함께 성장하는 개발자 커뮤니티를 만들어 가요! 코딩하는곰이었습니다 :)

🍵 면역력과 활력을 챙기고 싶다면 한 번쯤 확인해볼, 프리미엄 프로바이오틱스를 참고해보세요.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#java

Share

Previous Article
(자바 문자열 비교 완벽 가이드) ==와 equals()의 차이를 코딩하는곰이 설명합니다!

Table Of Contents

1
1. 문자열 자르기 - substring() 메소드 심층 분석
2
2. 문자열 치환 - replace() 계열 메소드 마스터하기
3
3. 문자열 검색 - indexOf()와 친구들 완벽 이해

Related Posts

(Java 예외 처리 마스터하기) 다중 catch와 예외 흐름 제어의 모든 것 - 코딩하는곰의 20년 노하우
December 16, 2025
3 min