본문 바로가기

카테고리 없음

[Java] 백준 2744번 : 대소문자 바꾸기

[2744] 대소문자 바꾸기 

 

문제

영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다.

출력

첫째 줄에 입력으로 주어진 단어에서 대문자는 소문자로, 소문자는 대문자로 바꾼 단어를 출력한다.

예제 입력 1 복사

WrongAnswer

예제 출력 1 복사

wRONGaNSWER

 

 

정답 코드

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.next();

    for(int i=0; i<str.length(); i++){
      char c = str.charAt(i); // 문자열을 한글자씩 쪼갬
      if(Character.isUpperCase(c)) // 대문자 -> 소문자
          c = Character.toLowerCase(c);
      else // 소문자 -> 대문자 
        c = Character.toUpperCase(c);
      System.out.print(c); // 변환된 문자를 출력 
    }
  }
}

 

 

* 접근 방식

1) 문자열 입력 받음

2) 입력 받은 문자열을 한글자씩 쪼갬

3) 쪼갠 문자가 대문자, 소문자 인지 판단하여 변환

 

  • Remind 
  • charAt로 문자열 한글자씩 쪼갠다 
  • String, next()
  • Study
  • Character.isUpperCase(char ch) :해당 문자가 대문자일 경우 true 반환
  • Character.isLowerCase(char ch) :해당 문자가 소문자일 경우 true 반환
  • Character.toUpperCase(char ch) : 지정된 문자를 대문자로 변환, 아닌 경우 입력 문자 그대로 반환
  • Character.toLowerCase(char ch) : 지정된 문자를 소문자로 변환, 아닌 경우 입력 문자 그대로 반환