ultra_dev
문자열.대소문자 본문
2. 대소문자 변환
설명
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
예시 입력 1
StuDY
예시 출력 1
sTUdy
if(Character.isLowerCase(x)) → x가 소문자로 구성되어 있느냐!
.toLowercase(x) -> x를 소문자화 시켜라
소문자면 true 아면 flase 리턴
이게 참이면 x는 소문자인 거니까 answer += Character.toUpperCase(x);
즉. 소문자면 x를 대문자해서 answer에 누적시키겠다.
else answer += Character.toLowerCase(x);
만약 대문자면 소문자화해서 answer에 누적시켜
class Main{
public String solution(String str) {
String answer = "";
for(char x : str.toCharArray()){
if(Character.isLowerCase(x)) answer += Character.toUpperCase(x);
else answer += Character.toLowerCase(x);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.print(T.solution(str));
}
}
📌 아스키코드를 활용해서 풀어보자
아스키코드에서 대문자는 65~90, 소문자는 97 ~ 122
대소문자 차이는 32
class Main{
public String solution(String str) {
String answer = "";
for(char x : str.toCharArray()){
if(x >= 97 && x <= 122) answer += (char)(x-32);
else answer += (char)(x+32);
//위에 String answr = "";로 했음에도 숫자로 나오니 (char)로 캐스팅 해주기
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.print(T.solution(str));
}
}
'알고리즘' 카테고리의 다른 글
문자열.문장 속 단어(indexOf(),substring()) (0) | 2023.01.12 |
---|---|
문자열.단어뒤집기 (0) | 2023.01.12 |
문자열.회문문자열 (0) | 2023.01.12 |
문자열.중복문자제거 (0) | 2023.01.12 |
문자열.문자찾기 (0) | 2023.01.12 |
Comments