String(스트링) 02. 대소문자 변환
* 사용 언어 : JAVA
* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리
1. 문제
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하기.
문자는 영어로 제공됨
// 입력
STudY
// 출력
stUDy
2. 풀이
먼저, 문자열을 입력받기 위해 Scanner를 호출한다.
(1) 아스키 코드
아스키 코드 테이블 상에서 알파벳 대문자는 65 ~ 90, 알파벳 소문자는 97~ 122이다.
A와 a의 차는 32로 소문자에서 32를 빼주면 대문자가 된다.
foreach문을 사용하여 입력받은 문자열의 문자 하나하나 비교하여 소문자를 대문자로 바꾸기 위해 문자가 97보다 크거나 같고 122보다 작거나 같을 경우 해당 문자에서 32를 빼주어 대문자로 만들어 준다. (char 타입은 자동으로 정수로 비교가 된다.)
char 타입의 변수를 연산하면 숫자로 반환되기 때문에 char 타입으로 다시 형변환을 반드시 해주어야한다.
반대의 경우 대문자를 소문자로 바꿔주기 위해 문자에서 32를 더하여 소문자로 만들어 준다. 연산 후 char 타입으로 형변환을 잊지말자!
3. 코드
public class Main {
public String solution(String str) {
String answer = "";
for (char c : str.toCharArray()) {
if (c >= 97 && c <= 122)
answer += (char) (c-32);
else
answer += (char) (c+32);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(T.solution(str));
}
}
4. Keword
- Character method
- isLowerCase();
- isUpperCase();
'Algorithm' 카테고리의 다른 글
[자바 알고리즘 문제풀이] String 04. 단어 뒤집기 (0) | 2022.03.06 |
---|---|
[자바 알고리즘 문제풀이] String 03. 문장 속 단어 (0) | 2022.03.06 |
[자바 알고리즘 문제풀이] String 01. 문자 찾기 (0) | 2022.02.17 |
순환 Recursion, 재귀함수 알고리즘 (0) | 2021.11.09 |
[백준_단계별로 풀어보기] 입출력과 사칙연산 2588번 곱셈 (JAVA) (0) | 2020.07.02 |