김찬진의 개발 블로그

23/01/16 [Inf_0102 대소문자 변환] 본문

1일1알고/Java Algorithm

23/01/16 [Inf_0102 대소문자 변환]

kim chan jin 2023. 1. 16. 15:12

설명

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.

 

입력

첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.

문자열은 영어 알파벳으로만 구성되어 있습니다.

 

출력

첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.

 

예시 입력 1 

StuDY

예시 출력 1

sTUdy

 

코드

기억할 것

String toCharArray()

Character isLowerCase(), isUpperCase()

package algorithm;

import java.util.Scanner;
  
public 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));
  }
}

 

코드: ASCII 사용

기억할 것

A~Z(65~90, 총 26개), a~z(97~122, 총 26개), A부터 a까지의 거리 32

package algorithm;

import java.util.Scanner;

public class Inf_0102_ASCII {
    public String solution(String str){
        String answer = "";
        for(char x : str.toCharArray()){
            if(x>=65 && x<=90){ // A ~ Z, 총 26개
                answer += (char)(x+32); // 대문자를 소문자로 변환
            } else if(x>=97 && x<=122){ // a ~ z, 총 26개
                answer += (char)(x-32); // 소문자를 대문자로 변환
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Inf_0102_ASCII m = new Inf_0102_ASCII();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.print(m.solution(str));
    }

}

 

Comments