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