문제 설명
영어 알파벳으로 이루어진 문자열 str이 주어집니다.
- 1 ≤
str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
더보기
입력#1 예시
aBcDeFg
출력#1 예시
AbCdEfG
제공되는 기본 코드는 다음과 같습니다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
}
}
문제 풀이: ASCII 코드를 사용한 풀이
입력된 문자열 str의 각 문자를 읽어 ASCII 코드에 따라서 처리합니다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
int len = a.length();
if (1 > len || 20 < len)
return;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; ++i) {
if (65 <= a.charAt(i) && 90 >= a.charAt(i))
sb.append((char) (a.charAt(i) + 32));
else if (97 <= a.charAt(i) && 122 >= a.charAt(i))
sb.append((char) (a.charAt(i) - 32));
}
System.out.println(sb.toString());
}
}
코드 | 비고 | |
Char 데이터가 |
||
알파벳 대문자를 ASCII 코드에 따라서 알파벳 소문자로 치환합니다. | ||
Char 데이터가 |
||
알파벳 소문자를 ASCII 코드에 따라서 알파벳 대문자로 치환합니다. |
더보기
ASCII 코드를 사용한 로직은 프로그래밍 언어와 관계 없이 동일한 로직을 보장합니다.
문제 풀이: Character 클래스를 사용한 풀이
Character 클래스를 사용해 로직을 단순화합니다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
if (1 > a.length() || 20 < a.length())
return;
StringBuilder sb = new StringBuilder();
for (Character c : a.toCharArray())
if (Character.isUpperCase(c))
sb.append(Character.toLowerCase(c));
else if (Character.isLowerCase(c))
sb.append(Character.toUpperCase(c));
System.out.println(sb.toString());
}
}
코드 | 비고 | |
String의 각 문자를 Character로 조회합니다. | ||
Character가 대문자인지 검사합니다. | ||
Character를 소문자로 치환합니다. | ||
Character가 소문자인지 검사합니다. | ||
Character를 대문자로 치환합니다. |
'Algorithm > Programmers' 카테고리의 다른 글
Level 1: 가운데 글자 가져오기, 짝수 홀수 판단과 배열 인덱싱 (0) | 2023.11.30 |
---|---|
Level 1: 폰켓몬, 배열의 중복 제거 (0) | 2023.11.30 |
Level 0: n 번째 원소부터 배열 자르기 (0) | 2023.11.22 |
Level 0: 정규식 사용하여 문자열을 공백으로 구분하기 (0) | 2023.11.22 |
Level 0: String 클래스의 repeat()을 사용한 문자열 반복 출력하기 (0) | 2023.11.22 |