[Java] 4. 대소문자 바꿔서 출력하기

김주희's avatar
May 07, 2025
[Java] 4. 대소문자 바꿔서 출력하기

1. 문제 설명, 제한 사항, 입출력 예시

notion image
 

2. 아이디어

💡
  1. 입력받은 문자열 → 한 문자씩 쪼개서
  1. 아스키 코드 값 65-90(대문자) 97-122(소문자) 기준으로 바꾸기 대소문자 확인 후
  1. 대문자 → 소문자, 소문자 → 대문자로 변환
 

1. next() vs nextLine()

  1. next(): 공백(스페이스, 개행, 탭) 이전까지 한 단어를 읽는다.
    1. String first = scanner.next(); // 첫 번째 단어 읽기 String second = scanner.next(); // 두 번째 단어 읽기 System.out.println("첫 번째 입력: " + first); System.out.println("두 번째 입력: " + second);
      Input) Hello World Output) 첫 번째 입력: Hello 두 번째 입력: World next(): Hello next(): World
  1. nextLine(): 공백을 포함한 문장을 입력 받을 수 있고 개행(enter) 전까지 한 줄 전체를 읽는다.
  1. next() 직후 nextLine() 사용 시 반드시 버퍼 비우기 필요
    1. next()는 공백 전까지만 읽고 남아 있는 줄바꿈 문자(\n)는 버퍼에 남아있는 상태이다.
    2. 따라서 next(0 직후에 nextLine()를 쓰면 버퍼에 남아있는 줄바꿈 문자를 읽게 되고 빈 문자열을 반환하게 된다.
    3. nextLine()을 한 번 더 호출하여 버퍼 비워준다.
 

2. 대소문자 메서드

  1. Character.isUpperCase(char ch)
    1. ch(문자)가 대문자인지 확인
    2. 반환 타입 : boolean
    3. 예시 : Character.isUpperCase('A') → true
  1. Character.isLowerCase(char ch)
    1. ch(문자)가 소문자인지 확인
    2. 반환 타입 : boolean
    3. 예시 : Character.isLowerCase('b') → true
  1. Character.toUpperCase(char ch)
    1. 문자를 대문자로 변환
    2. 반환 타입 : char
    3. 예시 : Character.toUpperCase('c') → 'C’
  1. Character.toLowerCase(char ch)
    1. 문자를 소문자로 변환
    2. 반환 타입 : char
    3. 예시 : Character.toLowerCase('D') → 'd’
 

3. 문자열을 한 글자씩 쪼개는 방법

  1. charAt(int index)
    1. String 문자열에서 특정 인덱스 위치의 문자를 char 타입으로 변환
    2. 특정 인덱스의 글자만 가져오고 싶을 때 사용
  1. toCharArray()
    1. String 문자열을 char형 배열로 반환
    2. 모든 글자를 순회하고 싶을 때 사용
    3. = charAt(i) + for문
 

4. 문자열 누적

  1. String answer = “” : 빈 문자열을 선언해둔다.
  1. answer += c : 문자열에 += 연산자를 통해 문자를 하나씩 덧붙여 새로운 문자열을 만든다.
 

3. 풀이 코드

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++){ char c = a.charAt(i); if(Character.isUpperCase(c)){ answer += Character.toLowerCase(c); }else{ answer += Character.toUpperCase(c); } } System.out.println(answer); } }
 
Share article

jay0628