본문 바로가기

Algorithm/Programers - Java

[프로그래머스(Java)] 대소문자 바꿔서 출력하기

 

Level. 0

 

문제

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

* 제한사항
- 1 ≤ str의 길이 ≤ 20
- str은 알파벳으로 이루어진 문자열입니다.

 

풀이

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String answer = "";
        for(int i=0; i<a.length(); i++){
            if(a.charAt(i) < 'a') answer += (char)(a.charAt(i) + 32);
            else answer += (char)(a.charAt(i) - 32) ;
        }
        System.out.print(answer);
    }
}

 

아스키코드를 활용하여 해결하였다.

 

알파벳 아스키코드(ASCII)

  • A~Z : 65 ~ 90
  • a ~ z : 97 ~ 122

 

 


다른 풀이

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(Character c : a.toCharArray()){
            if(Character.isUpperCase(c)){
                answer += Character.toLowerCase(c);
            }
            else if(Character.isLowerCase(c)){
                answer += Character.toUpperCase(c);
            }
        } 
        System.out.println(answer);
    }
}

 

Character.isUpperCase(), Character.isLowerCase()

  • 인자로 받은 문자가 대문자인지, 소문자인지를 판단하여 false true의 값을 리턴한다. 

Character.isDigit() 

  • 인자로 받은 문자가 숫자인지 판단하여 false, true의 값을 리턴한다. 

Character.isUpperCase(), Character.isLowerCase()

  • 인자로 받은 문자를 각각 대소문자로 변환하여 리턴한다. 

str.toUpperCase(), str.toLowerCase()

  • 각각 대소문자로 변환한 문자열을 리턴한다. 

https://school.programmers.co.kr/learn/courses/30/lessons/181949

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr