[JAVA]대소문자 바꾸기와 검사하기 UpperCase&&LowerCase

IT 정보/java 2024. 12. 10. 22:32
반응형

 

강호의 도리

charAt();    특정 인덱스에 위치한 문자를 반환하는 메서드

 

isUpperCase();  isLowerCase();    대소문자 구별

 

toUpperCase();  toLowerCase();   대소문자 변환

import java.util.Scanner;

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

 


프로그래머스 Lv.0 대소문자 바꿔서 출력하기

 

 

조건 1. 문자열(String)str이 주어진다.

조건 2. str은 알파벳으로 이루어진 문자열이다.

 

입출력 예

 

입력#1

aBcDeFg

 

출력#1

AbCdEfG

 


 

소문자는 대문자로 변환을 해야하며, 대문자는 소문자로 변환해야 한다.

 

하지만 나는 국비지원에서 if, for, while, do while 밖에 배우지 못했는데 어떻게 해야할까?

 

겁내지마라 우린 21세기에 살고있다.

 

제일먼저 해야할 일을 정한다.

 

1. str 은 프로그래머스 코딩테스트에서 입력예시를 무작위로 줘 채점을 하기 때문에 따로 입력을 받는 scanner는 필요가 없다.

 

2. 나는 str을 int[] 배열 형식으로 변환하여 for루프를 돌려 하나씩 확인을 하여 if문을 사용하여 만약 for 루프에서 해당하는 i 부분이 소문자 이거나 대문자이면 반대로 변경하는 if문을 사용하면 되지 않을까?

 

3. 그렇다면 우선 String을 int[] 배열 형식으로 변경하는 방법을 알아보면 되겠다.

 

해당 방법에 대한 자세한 내용은 구글 또는 gpt에 물어보면 자세하게 대답을 해줄거다.

 

import java.util.Scanner;

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

 

프로그래머스에 보면 초기 값은 위에 있는 코드처럼 되어있다. 보아하니 문자열 str은 scanner로 받는걸로 구현이 되어있는걸 확인할 수 있다. 우리는 a가 초기값으로 aBcDeFg 온다 예상할 수 있겠다.

 

그러면 String a 를 배열형식으로 변환을 해야하는데 이 방법을 해결해주는 a라는 객체에 대한 메서드 호출은

 

charAt(); 

 

이다. 해당 부분을 a라는 객체와 함께 메서드 호출을 사용하게 되면

 

a. charAt(); 가 된다.

 

4. 이제 우리는 String a에 대한 배열을 얻었으므로,  for loop를 사용하여 a.charAt(i) 이 부분에 i를 넣어 i<a.length 만큼의 인덱스 숫자만큼 하나씩 확인을 할 수 있다.

 

5. 이제는 해당 인덱스 부분이 대문자 또는 소문자인지 확인하는 메서드 호출이 필요한데 여기서 필요한건 아래에 있다.

 

 

isUpperCase();  isLowerCase();

 

        for (int i = 0; i < a.length(); i++) {
            char temp = a.charAt(i);
            if (Character.isUpperCase(temp))

 

if (Character.isUpperCase(temp)) 안에 있는 temp는 for loop로 인하여 알파벳 하나씩 해당 부분에 들어갈 것이다. 그 부분은 boolean으로 되며, 알파벳이 대문자라면, if문이 실행되며 소문자 확인은 굳이 LowerCase를 사용할 필요 없이 else를 사용하면 끝!

 

근데 이제 대소문자 구분은 했는데 어떻게 대문자 ---> 소문자 이렇게 바꾸냐?

 

너무 이지피지 레몬 스퀴지

 

isUpperCase --> toUpperCase 이렇게 비슷한 메서드 호출이 있는데 is는 확인작업, to는 변환 이렇게 생각하면 너무쉽다

 

toUpperCase();  toLowerCase();

import java.util.Arrays;
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 temp = a.charAt(i);
            if (Character.isUpperCase(temp)) {
                answer += Character.toLowerCase(temp);
            } else {
                answer += Character.toUpperCase(temp);
            }

        }
        System.out.println(answer);



    }
}

 

반응형

'IT 정보 > java' 카테고리의 다른 글

[JAVA] 문자열 섞기 charAt, Array  (0) 2024.12.16
[JAVA]문자열 붙여서 출력하기 replaceAll  (0) 2024.12.11
[Java] 기초문법 문제 Number1  (0) 2024.12.02