본문 바로가기

알고리즘 with 자바

2. 대소문자 변환

문제 설명

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.

첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.

문자열은 영어 알파벳으로만 구성되어 있습니다.

 

입력예시: StuDY

출력예시: sTUdy

 

작성 코드

public class Test01_02 {

    	public static void main(String[] args) {
		
        	Test01_02 test02 = new Test01_02();
		System.out.println(test02.solution1( "StuDY"));
		System.out.println(test02.solution2( "StuDY"));
	}
	
	public String solution1(String s) {
		
		
		String result = "";
		
		for(char c : s.toCharArray()) {
			
			if(Character.isUpperCase(c)) {
				result += Character.toLowerCase(c);
			}else {
				result += Character.toUpperCase(c);
			}
		}
		
		return result;
	}
	
	public String solution2(String s) {
		
		String result = "";
		
//		System.out.println((int)'A');
//		System.out.println((int)'Z');		
//		System.out.println((int)'a');
//		System.out.println((int)'z');
		
		for(char c : s.toCharArray()) {			
			
			// isUpperCase()
			if(c >= 65 && c <= 90) {
				result += (char)(c+32);
			
			// isLowerCase()
			}else {
				result += (char)(c-32);
			}
		}
		
		return result;
	}
}

문제 풀이

두가지 방법으로 풀이가 가능하다.

첫번째는 Character클래스에서 제공하는 isUpperCase(), isUpperCase()를 활용하는 방법

두번째는 아스킷코드를 비교하는 방법이다.

아스킷코드는 char형이라면 기본으로 연산 가능하며, 필요 시 (int), (char)로 형변환이 필요하다.

아스킷코드는 외울 필요는 없고 필요 시 int형으로 형변환 해서 찍어보면 될것 같다.

'알고리즘 with 자바' 카테고리의 다른 글

6. 중복문자제거  (0) 2021.04.15
5. 특정 문자 뒤집기  (0) 2021.04.11
4. 단어 뒤집기  (0) 2021.04.10
3. 문장 속 단어  (0) 2021.04.10
1. 문자 찾기  (0) 2021.04.09