Java
[Java] String 과 Char 관련된 메서드와 사용법
seoeunpapa
2025. 2. 2. 00:01
728x90
자바에서 String 및 Char 관련 API는 문자열을 다루는 데 필수적인 기능을 제공합니다. 주요 API와 그 사용 예시를 정리해 보겠습니다.
✅ 1. String 클래스 (문자열 처리)
📌 주요 메서드 및 사용 예제
메서드 | 설명 | 사용 예시 |
length() | 문자열 길이 반환 | "hello".length() → 5 |
charAt(int index) | 특정 인덱스의 문자 반환 | "hello".charAt(1) → 'e' |
substring(int beginIndex, int endIndex) | 부분 문자열 반환 | "hello".substring(1, 4) → "ell" |
toUpperCase() | 대문자로 변환 | "hello".toUpperCase() → "HELLO" |
toLowerCase() | 소문자로 변환 | "HELLO".toLowerCase() → "hello" |
indexOf(String str) | 특정 문자열의 인덱스 반환 | "hello".indexOf("l") → 2 |
lastIndexOf(String str) | 마지막으로 등장하는 위치 반환 | "hello".lastIndexOf("l") → 3 |
contains(String str) | 문자열 포함 여부 확인 | "hello".contains("el") → true |
replace(String old, String new) | 문자열 치환 | "hello".replace("l", "x") → "hexxo" |
trim() | 문자열 앞뒤 공백 제거 | " hello ".trim() → "hello" |
split(String regex) | 문자열을 구분자로 나누기 | "a,b,c".split(",") → ["a", "b", "c"] |
equals(String anotherString) | 문자열 비교 | "hello".equals("Hello") → false |
equalsIgnoreCase(String anotherString) | 대소문자 무시하고 비교 | "hello".equalsIgnoreCase("Hello") → true |
startsWith(String prefix) | 특정 문자열로 시작하는지 확인 | "hello".startsWith("he") → true |
endsWith(String suffix) | 특정 문자열로 끝나는지 확인 | "hello".endsWith("lo") → true |
toCharArray() | 문자열을 char 배열로 변환 | "hello".toCharArray() → ['h', 'e', 'l', 'l', 'o'] |
✅ 사용 예제
public class StringExample {
public static void main(String[] args) {
String str = "Hello Java!";
System.out.println("길이: " + str.length());
System.out.println("3번째 문자: " + str.charAt(2));
System.out.println("부분 문자열: " + str.substring(0, 5));
System.out.println("대문자 변환: " + str.toUpperCase());
System.out.println("소문자 변환: " + str.toLowerCase());
System.out.println("문자 포함 여부: " + str.contains("Java"));
System.out.println("문자 치환: " + str.replace("Java", "World"));
}
}
✅ 2. Character 클래스 (문자 처리)
📌 주요 메서드 및 사용 예제
메서드 | 설명 | 사용 예시 |
isUpperCase(char ch) | 대문자 여부 확인 | Character.isUpperCase('A') → true |
isLowerCase(char ch) | 소문자 여부 확인 | Character.isLowerCase('a') → true |
toUpperCase(char ch) | 대문자로 변환 | Character.toUpperCase('a') → 'A' |
toLowerCase(char ch) | 소문자로 변환 | Character.toLowerCase('A') → 'a' |
isDigit(char ch) | 숫자 여부 확인 | Character.isDigit('5') → true |
isLetter(char ch) | 문자 여부 확인 | Character.isLetter('A') → true |
isWhitespace(char ch) | 공백 문자 여부 확인 | Character.isWhitespace(' ') → true |
✅ 사용 예제
public class CharacterExample {
public static void main(String[] args) {
char ch = 'a';
System.out.println("대문자인가? " + Character.isUpperCase(ch));
System.out.println("소문자인가? " + Character.isLowerCase(ch));
System.out.println("대문자로 변환: " + Character.toUpperCase(ch));
System.out.println("숫자인가? " + Character.isDigit(ch));
}
}
✅ 3. StringBuilder 클래스 (문자열 조작)
String은 불변(immutable) 객체이므로 문자열 변경이 많으면 StringBuilder나 StringBuffer를 사용하는 것이 성능 면에서 유리합니다.
📌 주요 메서드 및 사용 예제
메서드 | 설명 | 사용 예시 |
append(String str) | 문자열 추가 | sb.append("World") |
insert(int offset, String str) | 특정 위치에 삽입 | sb.insert(5, "Java") |
replace(int start, int end, String str) | 문자열 일부 교체 | sb.replace(6, 10, "C++") |
delete(int start, int end) | 특정 부분 삭제 | sb.delete(0, 5) |
reverse() | 문자열 뒤집기 | sb.reverse() |
toString() | String으로 변환 | sb.toString() |
✅ 사용 예제
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString()); // "Hello World"
sb.insert(5, ", Java");
System.out.println(sb.toString()); // "Hello, Java World"
sb.replace(7, 11, "C++");
System.out.println(sb.toString()); // "Hello, C++ World"
sb.delete(5, 7);
System.out.println(sb.toString()); // "HelloC++ World"
sb.reverse();
System.out.println(sb.toString()); // "dlroW ++C olleH"
}
}
✅ 4. String vs StringBuilder vs StringBuffer
클래스 | 특징 | 스레드 안정성 | 성능 |
String | 불변(immutable) 객체 | O | 느림 (새 객체 생성) |
StringBuilder | 가변(mutable) 객체 | X | 빠름 |
StringBuffer | 가변(mutable) 객체 | O (동기화 지원) | 상대적으로 느림 |
- 문자열 변경이 많다면 → StringBuilder (단일 스레드 환경)
- 멀티 스레드 환경이라면 → StringBuffer
- 변경이 적고, 불변성이 필요하다면 → String
✅ 정리
- String: 불변 객체, 다양한 문자열 조작 메서드 제공.
- Character: 개별 문자 조작을 위한 유틸리티 메서드 제공.
- StringBuilder: 가변 문자열, 성능이 우수하여 문자열 조작이 많을 때 사용.
728x90