
1. ✅ 문자열(String)이란?
Java에서 String은 문자들의 연속된 집합으로, 불변(immutable) 속성을 가진다.
즉, String 객체가 한 번 생성되면 내부 값이 변경되지 않는다!
따라서 문자열을 수정하는 함수(replace(), substring() 등)를 사용하면 새로운 문자열이 생성된다.
✅ 자주 사용하는 문자열 함수
메서드
|
설명
|
substring(start, end)
|
특정 위치(start)부터 end 이전까지 문자열을 추출
|
contains(str)
|
특정 문자열을 포함하는지 검사 (true / false 반환)
|
startsWith(str, index)
|
특정 위치에서 지정된 문자열로 시작하는지 확인
|
endsWith(str)
|
특정 문자열로 끝나는지 확인
|
replace(old, new)
|
특정 문자열을 다른 문자열로 치환
|
toUpperCase()
|
문자열을 대문자로 변환
|
toLowerCase()
|
문자열을 소문자로 변환
|
trim()
|
문자열 양쪽의 공백 제거
|
split(regex)
|
특정 구분자로 문자열을 나누어 배열로 반환
|
Integer.parseInt(str, radix)
|
문자열을 지정된 진법(radix)에서 정수로 변환
|
2. 예제 코드 분석
public class StringExample {
public static void main(String[] args) {
/***********************************************************************/
/*************************** 데이터 수정 연습 ******************************/
/***********************************************************************/
// 1. 문자열 자르기 (substring)
String str = "가123 나다라45.";
System.out.println("substring(0, 6): " + str.substring(0, 6)); // "가123 나"
// 2. 특정 문자열 포함 여부 검사
boolean result1 = str.contains("나"); // "나"를 포함하는지 확인
boolean result2 = str.startsWith("가1", 0); // "가1"이 0번째 위치에서 시작하는지 확인
boolean result3 = str.endsWith("5."); // "5."로 끝나는지 확인
System.out.println("contains(\"나\"): " + result1);
System.out.println("startsWith(\"가1\", 0): " + result2);
System.out.println("endsWith(\"5.\"): " + result3);
// 3. 문자열 변경 (replace)
System.out.println("replace(\"45\", \"123\"): " + str.replace("45", "123"));
// 4. 문자열 → 숫자 변환 (2진수 → 10진수)
int binaryToDecimal = Integer.parseInt("1011101011", 2);
System.out.println("Binary '1011101011' to Decimal: " + binaryToDecimal);
// 5. 문자열 변환 예제 추가
System.out.println("toUpperCase(): " + str.toUpperCase()); // 대문자로 변환
System.out.println("toLowerCase(): " + str.toLowerCase()); // 소문자로 변환
System.out.println("trim(): '" + " Hello World ".trim() + "'"); // 공백 제거
// 6. 문자열 나누기 (split)
String sample = "사과,바나나,포도,수박";
String[] fruits = sample.split(",");
System.out.println("split 결과:");
for (String fruit : fruits) {
System.out.println("- " + fruit);
}
// 7. 숫자를 문자열로 변환
int number = 1234;
String numberStr = String.valueOf(number);
System.out.println("숫자 -> 문자열 변환: " + numberStr);
}
}
3. 실행 결과 예상
substring(0, 6): 가123 나
contains("나"): true
startsWith("가1", 0): true
endsWith("5."): true
replace("45", "123"): 가123 나다라123.
Binary '1011101011' to Decimal: 747
toUpperCase(): 가123 나다라45.
toLowerCase(): 가123 나다라45.
trim(): 'Hello World'
split 결과:
- 사과
- 바나나
- 포도
- 수박
숫자 -> 문자열 변환: 1234
4. 문자열 관련 꿀팁
✔ 1) String은 불변(Immutable) 객체!
String str = "Hello";
str = str.replace("H", "J"); // 새로운 문자열을 생성하여 str에 할당
💡 replace()를 사용해도 원본 문자열이 바뀌지 않음 → 새로운 문자열을 반환하는 구조.
✔ 2) 성능이 중요한 경우 StringBuilder 사용 +tip : 코딩테스트 할때 매우 유용(시간 줄여준다)
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString()); // "Hello World"
💡 String보다 문자열 추가/수정 속도가 빠름 (StringBuffer도 가능하지만, StringBuilder가 더 빠름).
✔ 3) split()을 사용한 문자열 분할
String data = "홍길동|이순신|강감찬";
String[] names = data.split("\\|"); // |는 정규식에서 특수문자이므로 \\로 이스케이프 필요
💡 특정 구분자로 문자열을 나눌 때 유용.
✔ 4) format()을 활용한 문자열 포맷팅
String name = "홍길동";
int age = 30;
System.out.println(String.format("이름: %s, 나이: %d", name, age));
✔ 5) join()을 활용한 문자열 결합
String[] words = {"Hello", "World", "Java"};
String result = String.join(" ", words);
System.out.println(result); // "Hello World Java"
💡 배열을 하나의 문자열로 변환할 때 편리.
5. 마무리
📌 정리
✅ substring(), replace(), contains() 등 다양한 문자열 처리 함수 존재
✅ 문자열 변환 시 Integer.parseInt(), String.valueOf() 등을 활용
✅ 성능이 중요한 경우 StringBuilder 사용 추천(ex 코딩테스트)
✅ split()과 join()을 활용하여 문자열을 다루기 쉽게 변환
학스의 개발일지
일상과 코딩 그 사이 어딘가에있는 블로그.. 블로거이자 빅데이터개발자 학스 입니다 JAVA, jQuery, PostgreSQL, MySQL, HIVE, Hadoop 더 많은 정보는 깃허브 주소 https://github.com/hacs2772 를 방문해주세요
hacs2772.tistory.com
오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.
'TIPS' 카테고리의 다른 글
Java 멀티스레드에서 충돌 방지하기 (0) | 2025.04.28 |
---|---|
Java 멀티스레드(Thread) 기초 가이드 (0) | 2025.04.21 |
Java 정렬(sort) 기초 가이드 (0) | 2025.04.07 |
Java 예외 처리 (try-catch) 기초 가이드 (0) | 2025.04.01 |
[jQuery] 제이쿼리 기초 및 사용방법 part.5 text,append,prepend,before,after (4) | 2023.09.13 |