문제 포인트
- 대문자는 소문자로, 소문자는 대문자로 변환한다.
- 따라서 어떤 기준에 따라 대문자와 소문자로 구분할 수 있는지 생각해보면 된다.
풀이
아스키 코드표에 따르면 영어 대문자는 65~90, 소문자는 97~122 의 값을 가진다.
따라서 대소문자의 차이값은 32이다.
입력받은 문자열을 하나하나 확인해보면서, 대문자의 범위 or 소문자의 범위에 들어가는지 확인하여 대소문자를 구분한다.
이후 대문자인 경우 소문자로, 소문자인 경우 대문자로 변환한다.
package 섹션1_String;
import java.io.*;
public class 대소문자변환 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder newStr = new StringBuilder();
String str = br.readLine();
int diff='a'-'A'; // 대문자와 소문자의 차이
for(char c:str.toCharArray()){
if(c>=65 && c<=90){ // 대문자인 경우 소문자로 변환
newStr.append((char) (c + diff));
}else{ // 소문자인 경우 대문자로 변환
newStr.append((char) (c - diff));
}
}
bw.write(newStr.toString());
bw.flush();
bw.close();
br.close();
}
}
✅ Character static 메서드 이용하기
for(char c:str.toCharArray()){
if(Character.isLowerCase(c)){
newStr.append(Character.toUpperCase(c));
} else {
newStr.append(Character.toLowerCase(c));
}
}
'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
1-7 회문 문자열 (0) | 2025.05.01 |
---|---|
1-6 중복 문자 제거 (1) | 2025.04.09 |
1-5 특정 문자 뒤집기 (0) | 2025.04.09 |
1-3 문장 속 가장 긴 단어 (0) | 2025.04.08 |
1-1 문자 찾기 (0) | 2025.04.07 |