[자바 공부] 대소문자 변환 알고리즘
문제
문제 설명
영어 알파벳으로 이루어진 문자열 str
이 주어집니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
제한 사항
- 1 ≤
str
의 길이 ≤ 20str
은 알파벳으로 이루어진 문자열입니다.
입출력 예시
입력 #1
aBcDeFg
출력 #1
AbCdEfG
해결방안
위와 같은 문제는 아스키코드를 이용하는 방법과 자바의 내장함수를 이용하는 방법가 있다.
solution#1
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer ="";
for(char x : a.toCharArray()){
if(Character.isLowerCase(x)){
answer += Character.toUpperCase(x);
}else{
answer += Character.toLowerCase(x);
}
}
System.out.print(answer);
}
}
toCharArray
은 문자열을 한 글자씩 쪼개서 char타입의 배열에 집어 넣어주는 메소드이다. 그리고 toUpperCase
를 이용하여 소문자를 대문자로 toLowerCase
를 이용하여 대문자를 소문자로 변경해준다.
solution #2
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer ="";
for(char x : a.toCharArray()){
if(x >= 65 && x <= 90)
answer += (char) (x+32);
if(x >= 97 && x <= 122)
answer += (char) (x-32);
}
System.out.print(answer);
}
}
아스키코드는 대문자 65~90, 소문자 97~122라는 점을 이용하여 두개의 차이인 32를 더하고 빼서 바꿔주는 방식이다.