한개의 알파벳, 숫자를 입력받아 변환해보자
단, 숫자를 입력받으면 20을 더한 값을 출력한다
[결과]
한개의 문자를 입력하세요
A:a
b:B
1:20
정답 :
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("한개의 문자를 입력하세요");
char ch = sc.next().charAt(0);
if(ch>=65 && ch<=90) {
System.out.println(ch+":"+(char)(ch+32));
}else if(ch>=97 && ch<=122) {
System.out.println(ch+":"+(char)(ch-32));
}else if(ch>=48 && ch<=57) {
System.out.println(ch+":"+(ch-28));
}else {
System.out.println("기타문자");
}
}
}
틀린 이유 :
숫자에 20을 더한 값을 출력하는 것에서 헤맸다
아스키 코드값을 잘 봐야한다
아스키 코드에서 숫자 1의 값은 49이다
실제 연산은 49로 이루어진다는 뜻이다
즉, 원하는 숫자를 출력하려면 48을 빼주면 된다
그러므로 20을 더한 숫자를 출력하려면 28을 빼주면 된다.
if(ch>=48 && ch<=57) {
System.out.println(ch+":"+(ch-28));
'JAVA > 연습노트' 카테고리의 다른 글
[백준-자바] 10871 배열 X보다 작은 수 (0) | 2024.03.24 |
---|---|
[백준-자바] 2525 오븐 (0) | 2024.03.20 |
바구니 개수 문제 (0) | 2024.03.20 |
놀이기구 신장 문제 (0) | 2024.03.20 |
[백준-자바] 11382 꼬마정민 (0) | 2024.03.20 |