1. 문제
벌써 헷갈리는 문제가 나오다니,,,,
2. 제출 답안
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
//값 받기
String answer = "";
for(int i = 0; i < a.length(); i++){
//한 글자씩 char 형으로 비교(문자열 반환)
char b = a.charAt(i);
//소문자는 대문자로 대문자는 소문자로
if(Character.isLowerCase(b)){
answer += Character.toUpperCase(b);
}
else {
answer += Character.toLowerCase(b);
}
}
System.out.println(answer);
}
}
charAt 함수
String 타입의 데이터(문자열)에서 특정 문자를 char 타입으로 변환할 때 사용하는 함수이다.
String sample = "abc";
char target = sample.charAt(0);
위처럼 String 변수에서 사용할 수 있으며,
charAt(i)
i 자리에는 int 형 변수를 넣어서 원하는 위치의 문자를 가져올 수 있다.
Character 함수
- isUpperCase() : 문자가 대문자인지 판단(true 또는 false)
- isLowerCase() : 문자가 소문자인지 판단(true 또는 false)
- isDigit() : 문자가 숫자인지 판단 (true 또는 false)
- toUpperCase(): 문자를 대문자로 변환
- toLowerCase(): 문자를 소문자로 변환
3. 다른 풀이
1) toCharArray 활용
: 문자열을 한 글자씩 쪼개서 char타입의 배열에 집어넣어주는 메서드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
//Stack <Character> stack = new Stack <> ();
for(Character c : a.toCharArray()){
if(Character.isUpperCase(c)){
//stack.push(Character.toLowerCase(c));
answer += Character.toLowerCase(c);
}
else if(Character.isLowerCase(c)){
//stack.push(Character.toUpperCase(c));
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
}
}
2) 아스키코드 활용
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));
}
}
}
}
3) Stringbuilder 활용
: String 을 만드는 객체
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
StringBuilder sb = new StringBuilder(); // StringBuilder 객체 생성
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) { // 대문자인 경우
sb.append(Character.toLowerCase(c)); // 소문자로 변환하여 StringBuilder에 추가
} else if (Character.isLowerCase(c)) { // 소문자인 경우
sb.append(Character.toUpperCase(c)); // 대문자로 변환하여 StringBuilder에 추가
} else { // 알파벳이 아닌 경우
sb.append(c); // 그대로 StringBuilder에 추가
}
}
System.out.println(sb.toString()); // StringBuilder를 String으로 변환하여 출력
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.0 덧셈식 출력하기(Java) (0) | 2023.10.18 |
---|---|
[프로그래머스] Lv.0 특수문자 출력하기(Java) (0) | 2023.10.17 |
[프로그래머스] Lv.0 문자열 반복해서 출력하기(Java) (0) | 2023.10.17 |
[프로그래머스] Lv.0 a와 b 출력하기(Java) (0) | 2023.10.17 |
[프로그래머스] Lv.0 문자열 출력하기(Java) (0) | 2023.10.17 |