학습
Java 문자열 처리
Java 문자열 처리 — 초급
문자열 처리
1. 도입 (왜 배워야 하는가)
문자열 처리는 모든 프로그래밍 언어에서 필수적인 기술입니다. Java를 포함한 많은 프로그래밍 언어에서 문자열은 데이터를 표현하는 기본 단위입니다. 실무에서는 사용자 입력, 데이터베이스 쿼리, API 응답 등 다양한 곳에서 문자열을 다루게 됩니다. 예를 들어, 쇼핑몰 웹사이트에서 사용자가 입력한 주소나 결제 정보는 문자열로 처리됩니다.
문자열 처리 기술이 부족하다면, 데이터 검증 실패, 오류 발생, 사용자에게 잘못된 정보 제공 등 여러 가지 문제가 발생할 수 있습니다. 따라서 문자열을 어떻게 효과적으로 처리하는지를 배우는 것은 매우 중요합니다.
2. 핵심 개념 설명
문자열 (String)
문자열은 문자들의 집합으로, 텍스트 데이터를 표현합니다. 예를 들어, "안녕하세요"라는 문장은 하나의 문자열입니다.
문자열 불변성 (Immutability)
Java에서 문자열은 불변(immutable)입니다. 즉, 문자열이 한 번 생성되면 그 내용을 변경할 수 없습니다. 새로운 문자열을 만들면 기존 문자열은 그대로 유지됩니다. 이는 마치 사과를 한 입 베어 먹어도 그 사과가 여전히 존재하는 것과 비슷합니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| String | 문자열을 표현하는 클래스 |
| StringBuilder | 변경 가능한 문자열을 다루는 클래스 |
| CharAt | 문자열의 특정 위치의 문자 반환 |
3. 기본 코드 예제
아래는 문자열을 생성하고, 길이를 출력하는 기본 코드 예제입니다.
public class StringExample {
public static void main(String[] args) {
String greeting = "안녕하세요"; // 문자열 변수 선언 및 초기화
System.out.println(greeting); // 문자열 출력
System.out.println("길이: " + greeting.length()); // 문자열 길이 출력
}
}
위 코드를 실행하면 다음과 같은 결과가 나옵니다.
안녕하세요
길이: 5
코드 한 줄씩 동작 설명
String greeting = "안녕하세요";: "안녕하세요"라는 문자열을 변수greeting에 저장합니다.System.out.println(greeting);:greeting의 값을 콘솔에 출력합니다.System.out.println("길이: " + greeting.length());:greeting문자열의 길이를 측정하여 출력합니다.- 문자열은 데이터를 표현하는 기본 단위로, 실무에서 필수적으로 사용됨.
- Java에서 문자열은 불변으로, 변경할 수 없지만 새로운 문자열을 생성할 수 있음.
- 문자열 비교 시
equals()메서드를 사용해야 하며, 길이를 초과한 인덱스 접근에 주의해야 함. - 문자열 관련 메서드 (substring, indexOf 등)
- StringBuilder를 사용한 문자열 조작
- 정규 표현식을 활용한 문자열 패턴 매칭
4. 실전 활용 예제
1. 사용자 입력 검증
쇼핑몰에서 사용자로부터 이메일 주소를 입력받을 때, 이메일 형식이 올바른지 검증해야 합니다.
import java.util.regex.Pattern;
public class EmailValidator {
public static void main(String[] args) {
String email = "[email protected]";
boolean isValid = Pattern.matches("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$", email);
System.out.println("이메일 유효성: " + isValid);
}
}
2. 문자열 연결
문자열을 연결하여 사용자에게 환영 메시지를 출력하는 예제입니다.
public class WelcomeMessage {
public static void main(String[] args) {
String userName = "홍길동";
String welcome = "안녕하세요, " + userName + "님!";
System.out.println(welcome);
}
}
5. 흔한 실수와 주의사항
실수 1: 문자열 비교 시 == 사용
문자열을 비교할 때 == 연산자를 사용하면 메모리 주소를 비교하게 되어 원하는 결과를 얻지 못할 수 있습니다.
잘못된 코드
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1 == str2); // false
올바른 코드
System.out.println(str1.equals(str2)); // true
실수 2: 문자열 길이 초과 접근
문자열의 길이를 초과해서 인덱스를 접근하면 StringIndexOutOfBoundsException이 발생합니다.
잘못된 코드
String str = "Hello";
char c = str.charAt(5); // 예외 발생
올바른 코드
if (str.length() > 5) {
char c = str.charAt(5);
}
6. 정리
다음에 학습하면 좋은 주제: