본문 바로가기
Coding Test

230927 대문자와 소문자 - Level 0

by mmm- 2023. 9. 27.

문제 설명

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
 

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 영어 대문자와 소문자로만 구성되어 있습니다.

 

입출력 예

 

입출력 설명

입출력 예 #1

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return합니다.

입출력 예 #2

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.

코드

class Solution {
    public String solution(String my_string) {
        String answer = "";
        StringBuilder sb = new StringBuilder();
        
        for(int i=0; i<my_string.length(); i++) {
            if(!Character.isLowerCase(my_string.charAt(i))) 
                sb.append(Character.toLowerCase(my_string.charAt(i)));
            else 
                sb.append(Character.toUpperCase(my_string.charAt(i)));
        }
        answer = sb.toString();
        
        
        return answer;
    }
}

 

풀이

my_string을 문자로 분리해 각각의 문자가 대문자인지 소문자인지 확인하여 결과에 따라 대문자는 소문자로, 소문자는 대문자로 변환하여 StringBuilder에 추가해준다. 그 후, StringBuilder를 문자열로 변환한다.


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.

class Solution {
    public String solution(String myString) {
        return myString.chars().mapToObj(operand -> String.valueOf((char) (Character.isLowerCase(operand) ? Character.toUpperCase(operand) : Character.toLowerCase(operand)))).collect(Collectors.joining());
    }
}

 
myString을 문자스트림으로 변환하여 그것이 소문자라면 대문자로 바꾸고, 소문자가 아닌 대문자라면, 소문자로 바꿔 그것을 join을 이용해 붙여 반환한다.