알고리즘 스터디(대소문자 바꾸기[백준 2744])

박윤택·2022년 5월 12일
3

알고리즘

목록 보기
6/25

문제


문제 이해

  1. 문자열을 입력 받는다.
  2. 소문자는 대문자로, 대문자는 소문자로 바꿔 출력한다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class SwapAlphabet {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    StringBuffer word = new StringBuffer(st.nextToken());

    for (int i = 0; i < word.length(); i++) { // A: 65, a: 97, 32 차이 / Z: 90, z:122
      if (65 <= word.charAt(i) && word.charAt(i) < 91)
        word.replace(i, i + 1, Character.toString((char) (word.charAt(i) + 32)));
      else if (97 <= word.charAt(i) && word.charAt(i) < 123)
        word.replace(i, i + 1, Character.toString((char) (word.charAt(i) - 32)));
    }
    System.out.println(word.toString());

  }
}

코드 설명

아스키 코드값 확인

  • 대문자 : A(65) ~ Z(90)
  • 소문자 : a(97) ~ z(122)
  • 대문자와 소문자의 각 알파벳 차이는 32

해결 과정

  • 문자열을 입력받은 값을 StringBuffer 객체인 word 변수에 넣는다.
  • word에 담긴 문자열을 한글자씩 탐색한다.
    • 대문자의 경우 아스키 코드 값을 이용하여 소문자로 변경하고 replace해준다.
    • 소문자의 경우도 동일
  • 출력

결과

0개의 댓글