study gomi

Java 대소문자 변환 / StringBuilder 클래스 정리 본문

basic/java

Java 대소문자 변환 / StringBuilder 클래스 정리

공부하곰 2024. 5. 28. 13:55
728x90
반응형

StringBuilder

- Java에서 문자열을 효율적으로 다루기 위한 클래스

- 문자열을 반복적으로 수정하거나 연결할 때 사용됨.

- 성능 면에서 유리.

- 가변성 : 변경 가능한 문자열을 다룰 수 있도록 설계됨. String 객체와 달리 새로운 문자열을 생성하지 않고도 기존 문자열을 수정 가능.

- 성능 : 문자열을 반복적으로 추가하거나 수정할 때 사용하면 String 객체를 사용하는 것보다 메모리 및 성능 면에서 더 효율적(String이 불변 객체이기 때문에 문자열을 수정할 때마다 새로운 String 객체가 생성됨.)

- 메서드 : append, insert, delete, replace, reverse 등의 유용한 메서드를 제공.

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        
        sb.append(" World"); // "Hello World" 추가
        sb.insert(5, ","); // "Hello," 추가
        sb.replace(0, 5, "Hi"); // "Hello"를 "Hi"로 대체
        sb.delete(2, 3); // "," 제거
        sb.reverse(); // 문자열 뒤집기
        
        System.out.println(sb.toString()); // 출력: "dlroW iH"
    }
}

 

문자 변환

- Character.isUpperCase(c): 문자가 대문자인지 확인.

- Character.toLowerCase(c): 문자를 소문자로 변환.

- Character.isLowerCase(c): 문자가 소문자인지 확인.

- Character.toUpperCase(c): 문자를 대문자로 변환.

 

문자열의 대소문자를 변환하는 방법

1. StringBuilder 사용

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        StringBuilder toggledString = new StringBuilder();

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (Character.isUpperCase(c)) {
                toggledString.append(Character.toLowerCase(c));
            } else if (Character.isLowerCase(c)) {
                toggledString.append(Character.toUpperCase(c));
            } else {
                toggledString.append(c); // 대소문자가 아닌 경우 그대로 추가
            }
        }

        System.out.println(toggledString.toString());
        sc.close();
    }
}

 

2. 문자 배열 사용

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        
        char[] charArray = str.toCharArray();

        for (int i = 0; i < charArray.length; i++) {
            char c = charArray[i];
            if (Character.isUpperCase(c)) {
                charArray[i] = Character.toLowerCase(c);
            } else if (Character.isLowerCase(c)) {
                charArray[i] = Character.toUpperCase(c);
            }
        }

        String toggledString = new String(charArray);
        System.out.println(toggledString);
        
        sc.close();
    }
}
728x90
반응형