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
반응형