안녕하세요, 코딩하는곰입니다! 오늘은 Java에서 가장 빈번하게 사용되는 문자열 처리 메소드인 substring, replace, indexOf에 대해 깊이 있게 알아보겠습니다. 20년간의 Java 개발 경험을 바탕으로 실제 프로젝트에서 활용할 수 있는 실용적인 예제와 함께 설명드리겠습니다. 문자열 처리는 프로그래밍의 기초이지만, 제대로 이해하지 못하면 예상치 못한 버그를 만날 수 있습니다. 이 글을 통해 여러분의 Java 문자열 처리 실력을 한 단계 업그레이드하시길 바랍니다.
Java에서 문자열의 특정 부분을 추출할 때 사용하는 substring() 메소드는 두 가지 형태로 제공됩니다.
String str = "Hello, World!";// 1. 시작 인덱스만 지정 (인덱스 7부터 끝까지)String sub1 = str.substring(7); // "World!"// 2. 시작 인덱스와 종료 인덱스 지정 (인덱스 0~5)String sub2 = str.substring(0, 5); // "Hello"
핵심 포인트
filename.substring(filename.lastIndexOf(".")+1) new String(str.substring(...))으로 명시적 생성 권장
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.replaceAll("<[^>]*>", "")
로또 번호를 QR코드로 빠르게 확인하고 싶다면, AI 기반 로또 번호 추천 앱 지니로또AI를 다운로드해보세요.
문자열 내 검색을 위한 주요 메소드들:
String text = "Java is to JavaScript what car is to carpet.";// 기본 검색int idx1 = text.indexOf("Java"); // 0int 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() 사용 text.toLowerCase().indexOf("java".toLowerCase())
🍵 면역력과 활력을 챙기고 싶다면 한 번쯤 확인해볼, 인플핏 데이 레몬버베나 다이어트를 참고해보세요.
오늘은 Java 문자열 처리의 핵심인 substring, replace, indexOf 메소드에 대해 깊이 있게 알아보았습니다. 이 세 가지 메소드만 제대로 활용해도 문자열 처리 관련 문제의 80%는 해결할 수 있습니다. 글에서 소개한 실무 팁들을 프로젝트에 적용해 보시길 바랍니다. 다음 시간에는 더 고급 문자열 처리 기법에 대해 알아보겠습니다. 질문이나 요청이 있으면 댓글로 남겨주세요. 함께 성장하는 개발자 커뮤니티를 만들어 가요! 코딩하는곰이었습니다 :)
🍵 면역력과 활력을 챙기고 싶다면 한 번쯤 확인해볼, 프리미엄 프로바이오틱스를 참고해보세요.
