Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

문자열.대소문자 본문

알고리즘

문자열.대소문자

ultra_dev 2023. 1. 12. 01:29
2. 대소문자 변환
 

설명

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

입력

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

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

출력

첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.

예시 입력 1 

StuDY

예시 출력 1

sTUdy

 

 

 

 

if(Character.isLowerCase(x)) → x가 소문자로 구성되어 있느냐! 

.toLowercase(x) -> x를 소문자화 시켜라

소문자면 true 아면 flase 리턴

이게 참이면 x는 소문자인 거니까 answer += Character.toUpperCase(x);

즉. 소문자면 x를 대문자해서 answer에 누적시키겠다.

else answer += Character.toLowerCase(x);

만약 대문자면 소문자화해서 answer에 누적시켜

class Main{
	public String solution(String str) {
		String answer = "";
		for(char x : str.toCharArray()){
			if(Character.isLowerCase(x)) answer += Character.toUpperCase(x);
			else answer += Character.toLowerCase(x);
		}
		return answer;
}

public static void main(String[] args){
	Main T = new Main();
	Scanner sc = new Scanner(System.in);
	String str = sc.next();
	System.out.print(T.solution(str));
	}
}

📌 아스키코드를 활용해서 풀어보자

아스키코드에서 대문자는 65~90, 소문자는 97 ~ 122

대소문자 차이는 32

class Main{
	public String solution(String str) {
		String answer = "";
		for(char x : str.toCharArray()){
			if(x >= 97 && x <= 122) answer += (char)(x-32);
				else answer += (char)(x+32);
//위에 String answr = "";로 했음에도 숫자로 나오니 (char)로 캐스팅 해주기
		}

		return answer;
}

public static void main(String[] args){
	Main T = new Main();
	Scanner sc = new Scanner(System.in);
	String str = sc.next();
	System.out.print(T.solution(str));
	}
}

'알고리즘' 카테고리의 다른 글

문자열.문장 속 단어(indexOf(),substring())  (0) 2023.01.12
문자열.단어뒤집기  (0) 2023.01.12
문자열.회문문자열  (0) 2023.01.12
문자열.중복문자제거  (0) 2023.01.12
문자열.문자찾기  (0) 2023.01.12
Comments