📌 자바 String 클래스 메서드
String 클래스는 불변(immutable) 객체로, 한 번 생성된 문자열은 변경되지 않습니다.
문자열을 다루는 다양한 메서드를 제공하며, 객체 지향적인 특징 때문에 Object 클래스의 메서드도 오버라이딩해서 사용
1. String 객체 생성 방식
객체 생성방식 2가지
1. new 키워드이용 : 같은 문자가 들어가도 두 문자열의 주소가 다름
2. 리터럴 이용 : 같은 문자가 들어가면 같은 주소를 사용
// 방식 1: new 키워드 이용 (항상 새로운 객체 생성)
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2); // false (주소 다름)
// 방식 2: 리터럴 이용 (String Pool 공유)
String s3 = "Hello";
String s4 = "Hello";
System.out.println(s3 == s4); // true (같은 객체 참조)
👉 따라서 문자열 비교 시 == (주소 비교) 가 아닌, 반드시 .equals() (값 비교) 를 사용해야 합니다.
2. String 주요 메서드 정리
(1) 문자열 출력 — toString()
- Object의 toString()을 오버라이딩하여 주소값이 아닌 문자열 자체를 반환
String s = "Have a Nice Day";
System.out.println(s.toString()); // Have a Nice Day
(2) 문자열 길이 — length()
- 문자열의 글자 개수를 반환
System.out.println(s.length()); // 15
(3) 문자열 비교
- equals() → 완전히 같은지 비교 (대소문자 구분 O)
- equalsIgnoreCase() → 대소문자 무시하고 비교
String a = "Hello";
String b = "hello";
System.out.println(a.equals(b)); // false (대소문자 구분 O)
System.out.println(a.equalsIgnoreCase(b)); // true (대소문자 구분 X)
(4) 사전순 비교 — compareTo()
- 0 → 같음
- 음수 → 앞에 옴
- 양수 → 뒤에 옴
String a = "Nice";
String b = "Day";
System.out.println(a.compareTo(b)); // 양수 (a가 b보다 뒤에 있음)
System.out.println(a.compareToIgnoreCase(b)); // 대소문자 구분 X
(5) 문자열 연결 — concat()
- 문자열을 이어붙임
System.out.println(a.concat(" Java")); // Nice Java
(6) 특정 문자 위치 찾기 — indexOf(), lastIndexOf()
- 존재하지 않으면 -1 반환
String s = "Have a Nice Day";
System.out.println(s.indexOf("Nice")); // 7 (앞에서부터 탐색)
System.out.println(s.lastIndexOf("a")); // 13 (뒤에서부터 탐색)
(7) 공백 제거 — trim()
- 앞뒤 공백 제거
String s = " abc DE F g h ";
System.out.println(s.length()); // 18
System.out.println(s.trim().length()); // 14
(8) 대소문자 변환
System.out.println(s.toUpperCase()); // 대문자 변환
System.out.println(s.toLowerCase()); // 소문자 변환
9) 포함 여부 확인 — contains()
- 대소문자 구분한다.
System.out.println(s.contains("nice")); // false (대소문자 구분)
(10) 특정 위치 문자 추출 — charAt()
System.out.println(s.charAt(3)); // v
(11) 문자열 자르기 — substring()
System.out.println(s.substring(5)); // "a Nice Day" (5번째부터 끝까지)
System.out.println(s.substring(5, 9)); // "a Ni" (5번째 ~ 9번째 앞까지)
(12) 파일명, 확장자 분리
String fullName = "Hello.java";
int pos = fullName.indexOf(".");
String fileName = fullName.substring(0, pos); // Hello
String ext = fullName.substring(pos + 1); // java
System.out.println("파일명: " + fileName);
System.out.println("확장자: " + ext);
3. 핵심 정리
| 메서드 | 설명 |
| equals() | 문자열 값 비교 (대소문자 구분 O) |
| equalsIgnoreCase() | 문자열 값 비교 (대소문자 구분 X) |
| compareTo() | 사전순 비교 (대소문자 구분 O) |
| compareToIgnoreCase() | 사전순 비교 (대소문자 구분 X) |
| concat() | 문자열 이어붙이기 |
| indexOf(), lastIndexOf() | 특정 문자/문자열 위치 찾기 |
| trim() | 문자열 앞뒤 공백 제거 |
| toUpperCase(), toLowerCase() | 대소문자 변환 |
| contains() | 특정 문자열 포함 여부 |
| charAt() | 특정 위치 문자 가져오기 |
| substring() | 문자열 자르기 |
'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글
| 29. Generic (1) | 2025.08.22 |
|---|---|
| 28. Calendar, Date, SimpleDataFormat (0) | 2025.08.22 |
| 26. 패키지 - Object (0) | 2025.08.22 |
| 25. 예외 처리(try ~ catch ~ finally), throw, Exception (0) | 2025.08.20 |
| 24. 익명클래스 (3) | 2025.08.20 |