자바 문자열 대소문자 변환 정리

이윤화·2025년 10월 15일

Java

목록 보기
8/14
post-thumbnail

📌 핵심 개념

1. String.toCharArray()

문자열을 문자 배열로 변환하는 메서드

String str = "Hello";
char[] arr = str.toCharArray(); // {'H', 'e', 'l', 'l', 'o'}

// for-each문으로 순회
for (char c : str.toCharArray()) {
    System.out.println(c);
}

왜 사용?

  • 문자열의 각 문자를 하나씩 처리할 때 편리
  • enhanced for문과 함께 사용하면 코드가 간결해짐

2. Character 클래스

문자(char)를 다루는 유틸리티 클래스

대소문자 판별

Character.isUpperCase('A');  // true
Character.isLowerCase('a');  // true

대소문자 변환

Character.toUpperCase('a');  // 'A'
Character.toLowerCase('A');  // 'a'

기타 유용한 메서드

Character.isDigit('5');      // 숫자 판별
Character.isLetter('A');     // 문자 판별
Character.isWhitespace(' '); // 공백 판별

3. StringBuilder

문자열을 효율적으로 조합할 때 사용

StringBuilder sb = new StringBuilder();
sb.append('H');
sb.append('i');
String result = sb.toString(); // "Hi"

String vs StringBuilder

// String 연결 (느림)
String str = "";
str += "a";
str += "b"; // 매번 새 객체 생성

// StringBuilder (빠름)
StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b"); // 기존 객체 수정

💡 실전 예제: 대소문자 토글

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        StringBuilder result = new StringBuilder();
        
        for (char c : a.toCharArray()) {
            if (Character.isUpperCase(c)) {
                result.append(Character.toLowerCase(c));
            } else if (Character.isLowerCase(c)) {
                result.append(Character.toUpperCase(c));
            } else {
                result.append(c); // 문자가 아니면 그대로
            }
        }
        
        System.out.println(result.toString());
    }
}

입력: HeLLo123
출력: hEllO123


📝 요약

  1. toCharArray() - 문자열을 문자 배열로 변환
  2. Character.isUpperCase() / isLowerCase() - 대소문자 판별
  3. Character.toUpperCase() / toLowerCase() - 대소문자 변환
  4. StringBuilder - 문자열 효율적으로 조합

🔗 관련 메서드

String str = "Hello";

str.toUpperCase();   // "HELLO" - 전체 대문자
str.toLowerCase();   // "hello" - 전체 소문자
str.charAt(0);       // 'H' - 인덱스로 문자 접근
str.length();        // 5 - 문자열 길이

0개의 댓글