[코딩테스트] 2. 대소문자 바꿔서 출력하기

편준민's avatar
Mar 06, 2025
[코딩테스트] 2. 대소문자 바꿔서 출력하기

문제 설명

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

예시

notion image

사용 문법

처음에 일단 문자열을 하나 하나 분리하여 배열에 넣었다.
package test; public class Test { public static void main(String[] args) { String str = "aBcDeFg"; String[] s = str.split(""); System.out.println(s[0]); }
이후 처음에는 0번지에 있는 ‘a’를 대문자로 바꿔봤다.
package test; public class Test { public static void main(String[] args) { String str = "aBcDeFg"; String[] s = str.split(""); String a = s[0].toUpperCase(); System.out.println(a); } }
notion image
성공하여 이제는 for문을 이용하여 모든 배열을 출력함과 동시에 if문을 사용해서 소문자 일 때는 대문자로, 대문자일 때는 소문자로 바꾸었다.
package test; public class Test { public static void main(String[] args) { String str = "aBcDeFg"; String[] s = str.split(""); for (int i = 0; i < s.length; i++) { if (s[i].equals(s[i].toLowerCase())) { String a = s[i].toUpperCase(); System.out.print(a); } else if (s[i].equals(s[i].toUpperCase())) { String a = s[i].toLowerCase(); System.out.print(a); } } } }
처음에는 문법을 찾아보았을 때 Character.isLowerCase('') 해당의 문법만 나왔다. 하지만 저 문법은 Char 타입일 때에만 사용이 가능했다. 하지만 나는 String배열의 넣었기 때문에 String배열 안에 소문자가 있을 경우 비교하는 문법이 필요했다. 그래서 s[i]toLowerCase를 이용하여 소문자로 바꾼 후 s[i]번에 있는 문자열과 toLowerCase로 바꾼 문자열이 같을 경우에는 대문자로 바꾸었다. 만약 소문자가 아니고 대문자일 경우에는 반대로 비교하고 같을 경우 소문자로 바꾸었다.
notion image

다른 사람의 풀이

아스키코드를 이용한 소스 코드
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); for(int i=0; i<a.length(); i++) { char c = a.charAt(i); if(Character.isUpperCase(c)) { System.out.print((char)(c+32)); } else { System.out.print((char)(c-32)); } } } }
Share article

YunSeolAn