문제 설명
영어 알파벳으로 이루어진 문자열
str
이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.제한사항
- 1 ≤
str
의 길이 ≤ 20 str
은 알파벳으로 이루어진 문자열입니다.
입출력 예
입력 #1
aBcDeFg
출력 #1
AbCdEfG
문제 풀이
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
StringBuilder result = new StringBuilder();
for(char c : str.toCharArray()) {
if(Character.isLowerCase(c)){
result.append(Character.toUpperCase(c));
}
if(Character.isUpperCase(c)){
result.append(Character.toLowerCase(c));
}
}
System.out.println(result.toString());
}
}


🔹 Java StringBuilder
란?
StringBuilder
는 문자열(String)의 변경이 많은 경우 사용하면 좋은 클래스입니다.자바의
String
객체는 불변(immutable) 이므로, 문자열을 수정할 때마다 새로운 객체가 생성됩니다.반면,
StringBuilder
는 가변(mutable) 객체로, 문자열을 직접 수정할 수 있어 성능이 더 좋습니다.🔹 StringBuilder
주요 메서드 및 사용법
✅ 1. append()
- 문자열 추가
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
sb.append(" Java"); // 문자열 추가
System.out.println(sb); // Hello Java
}
}
출력:
nginx
복사편집
Hello Java
✅ 2. insert()
- 특정 위치에 문자열 삽입
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello Java");
sb.insert(6, "Awesome "); // 6번째 위치에 삽입
System.out.println(sb); // Hello Awesome Java
}
}
출력:
nginx
복사편집
Hello Awesome Java
✅ 3. replace()
- 문자열 변경
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello Java");
sb.replace(6, 10, "World"); // "Java" → "World" 변경
System.out.println(sb); // Hello World
}
}
출력:
nginx
복사편집
Hello World
📝 설명:
replace(int start, int end, String str)
start
부터end-1
까지의 문자열을str
로 변경
✅ 4. delete()
- 문자열 삭제
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello Java");
sb.delete(6, 10); // "Java" 삭제
System.out.println(sb); // Hello
}
}
출력:
nginx
복사편집
Hello
✅ 5. reverse()
- 문자열 뒤집기
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
sb.reverse(); // 문자열 뒤집기
System.out.println(sb); // olleH
}
}
출력:
nginx
복사편집
olleH
✅ 6. toString()
- String
으로 변환
java
복사편집
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello Java");
String str = sb.toString(); // String 변환
System.out.println(str);
}
}
🔹 StringBuilder
vs StringBuffer
차이점
클래스 | 특징 |
String | 불변(immutable) 객체. 문자열 변경 시 새로운 객체 생성. |
StringBuilder | 가변(mutable) 객체. 문자열 변경이 많을 때 성능이 좋음. |
StringBuffer | StringBuilder 와 유사하지만 쓰레드 안전(Thread-safe) |
🚀 결론:
- 멀티스레드 환경이 아니면
StringBuilder
사용 (더 빠름!)
- 멀티스레드 환경이면
StringBuffer
사용 (동기화 지원)
🔹 정리
StringBuilder
는 문자열을 효율적으로 수정할 때 사용.
- 주요 메서드:
append()
→ 문자열 추가insert()
→ 특정 위치에 삽입replace()
→ 특정 문자열 변경delete()
→ 문자열 삭제reverse()
→ 문자열 뒤집기
- 멀티스레드 환경이 아니면
StringBuilder
사용이 더 좋다! 🚀
대소문자 변환
메서드 | 설명 | 예제 |
Character.isLowerCase(c) | 문자가 소문자인지 확인 | 'a' → true , 'A' → false |
Character.isUpperCase(c) | 문자가 대문자인지 확인 | 'A' → true , 'a' → false |
Character.toLowerCase(c) | 대문자를 소문자로 변환 | 'A' → 'a' |
Character.toUpperCase(c) | 소문자를 대문자로 변환 | 'a' → 'A' |
Share article