오늘은 자바 0레벨 대문자와 소문자 예제를 풀어보았다.
참고로 문자열과 관련한 코딩테스트의 문법들을 정리해놓았으니
아래 링크를 통해 한번 확인해보시기를 바란다.
https://dev-with-gpt.tistory.com/119
문제 설명
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string은 영어 대문자와 소문자로만 구성되어 있습니다.
입출력 예
my_stringresult
입출력 예 설명
입출력 예 #1
- 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return합니다.
입출력 예 #2
- 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.
문제풀이 및 설명
전체코드
class Solution {
public String solution(String my_string) {
String answer = "";
String[] Array = my_string.split("");
for (int i = 0; i < my_string.length(); i++) {
if (Character.isUpperCase(Array[i].charAt(0))) {
answer += Array[i].toLowerCase();
} else if (Character.isLowerCase(Array[i].charAt(0))) {
answer += Array[i].toUpperCase();
}
}
return answer;
}
}
내가 풀었던 방법은 우선 String 을 split을 통해 배열로 만들어주는 것이다.
이렇게하면 문자열의 각 문자 하나하나를 배열로 만들어줄 수 있다.
예를 들어서,
String my_string = "abCdEfghIJ";
String[] Array = my_string.split("");
라면.
[a],[b],[C],[d],[E],[f],[g],[h],[l],[J] 의 Array 라는 Stirng 배열이 생성된다.
대문자 소문자를 구분하기 위해서는 각 배열의 번호 "0~my_string.length()" 까지를
i를 증가시키면서 하나씩 빼서 대문자 인지 소문자인지를 if문으로 판단하고
소문자를 대문자로, 대문자를 소문자로 바꿔주면 된다.
if (Character.isUpperCase(Array[i].charAt(0))) {
이것은 배열의 입력받은 for문의 배열 번호에 해당하는 첫 문자열을 char 로 바꿔준다.
우리의 배열은 하나의 문자열만 갖고 있기 때문에 배열의 각 문자를 대문자인지 탐색해주게 된다.
answer += Array[i].toLowerCase();
이렇게 answer은 if문에서 대문자로 판단한 배열의 대문자를 소문자로 바꿔줄 수 있게 된다.