본문 바로가기

JAVA/연습노트

아스키 코드 숫자 변환

한개의 알파벳, 숫자를 입력받아 변환해보자

단, 숫자를 입력받으면 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