문제 설명
영어 알파벳으로 이루어진 문자열
str
이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.제한사항
- 1 ≤
str
의 길이 ≤ 20 str
은 알파벳으로 이루어진 문자열입니다.
예시

사용 문법
처음에 일단 문자열을 하나 하나 분리하여 배열에 넣었다.
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);
}
}

성공하여 이제는
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
로 바꾼 문자열이 같을 경우에는 대문자로 바꾸었다. 만약 소문자가 아니고 대문자일 경우에는 반대로 비교하고 같을 경우 소문자로 바꾸었다.
다른 사람의 풀이
아스키코드를 이용한 소스 코드
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