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

박주현·2023년 8월 14일
0

Baekjoon

목록 보기
11/24
post-thumbnail

https://www.acmicpc.net/problem/2744

1. 문제

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

2. 입력

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

3. 출력

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

4. 코드

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

public class Num2744 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String s = br.readLine();
        StringBuilder sb = new StringBuilder();

        for(int i=0; i<s.length(); i++){
            char c = s.charAt(i);

            if(Character.isUpperCase(c)){
                sb.append(Character.toLowerCase(c));
            }else{
                sb.append(Character.toUpperCase(c));
            }
        }
        System.out.println(sb);

    }
}

5. 회고

  1. StringBuilder sb = new StringBuilder(); 에 대한 이해부족.

6. 학습한 내용

6.1 StringBuilder sb = new StringBuilder();

  1. 사용 이유
    : str1 + str2 의 단어를 더한다고 가정했을때, 결과값이 나오고 새로운 String 변수에 값이 저장된다.
    이러한 연산은 메모리의 낭비가 일어난다는 단점이 존재한다.

    이러한 단점을 보완하기 위해 사용하는 것이 StringBuilder 이다.
    StringBuilder는 새로운 인스턴스 생성없이 문자열의 연산을 수행하여 문자의 삽입과 삭제가 자유롭다.

    But! StringBuilder는 String이 아니기에 연산 후에 String으로 변환해야한다는 번거로움이 존재한다.

    6.2 StringBuilder 메소드

    예시) StringBuilder sb = new StringBuilder();

  2. sb.length() : 문자열의 길이 반환

  3. sb.reverse() : 문자열을 뒤집는다

  4. sb.append() : 문자뒤에 문자열 추가

  5. sb.delete(1,3) : 1~3까지 문자열 삭제

  6. sb.insert(index, " ") : index에 문자열 삽입

  7. sb.replace(2,4) : 2~4를 문자열로 대체

  8. sb.toString() : StringBuilder를 문자열로 변환

profile
빌드업 막 시작하는 개발자

0개의 댓글

관련 채용 정보