• Home
  • About
    • 최정재 photo

      최정재

      창의적인 시각으로 다양한 가능성을 탐색하는 개발의 모험가

    • Learn More
    • Email
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[자바 공부] 대소문자 변환 알고리즘

08 Oct 2023

Reading time ~1 minute

[자바 공부] 대소문자 변환 알고리즘

문제

문제 설명

영어 알파벳으로 이루어진 문자열 str이 주어집니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한 사항

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

입출력 예시

입력 #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를 더하고 빼서 바꿔주는 방식이다.



algorithm Share Tweet +1