입력받은 문자나 숫자를 아스키코드값으로 바꾸어 출력하는 간단한 문제다.
자바에서 char을 입력받는 법을 잊어버렸다가 구글링해서 기억해냈다.
숫자를 입력할수도 문자를 입력할수도 있으나 상관없이 문자로 받는다.
자바의 Scanner는 문자를 입력받는 기능이 없어서 일단 문자열로 입력받은후, charAt(0)으로 첫번째 문자를 꺼내는 과정을 거쳐야한다.
여기서 0은 문자열에서 꺼내올 문자의 인덱스인데 어차피 한개의 문자를 입력할것이기 때문에 0으로 한다.
나는 이것을 ch에 먼저 char형으로 저장한뒤 따로 int타입으로 강제형변환시켜 in에 할당하여 숫자로 만들고자 했었다.
안되는건 아니지만 우선 char형에서 int형변환 시킬때는 강제형변환이 필요가 없다.
더 작은 데이터 타입에서 더 큰 데이터 타입으로 변환시킬때는 자동형변환이 적용되기 때문이다.
다만 반대 경우에서는 컴파일 에러가 발생하기 때문에 강제형변환이 필요한 것이다.
따라서 문자를 추출해서 바로 int형 변수에 할당하게되면 자동형변환이 일어나 한줄로 다 문자 입력받기와 형변환 해결이 가능한것.
(char는 2바이트, int는 4바이트)
무튼 그렇게하면 숫자인 아스키코드가 출력되어 나오게 된다.
package Level6;
import java.util.Scanner;
public class AsciiPrint {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// char ch = sc.nextLine().charAt(0); //문자 입력받으려면 이렇게 해야한다고 했던듯. nextChar 만들어줘 ㅡㅡ
// int in = (int) ch;
int ch = sc.nextLine().charAt(0); //위의 두줄을 이거 한줄로 줄일수있음
System.out.println(ch);
}
}
'알고리즘 > 문자열' 카테고리의 다른 글
[백준알고리즘] 문자열 - 1152번 단어의 개수 문제 (0) | 2022.07.22 |
---|---|
[백준알고리즘] 문자열 - 1157번 단어공부 문제 (0) | 2022.07.20 |
[백준알고리즘] 문자열 - 2675번 문자열 반복 문제 (0) | 2022.07.15 |
[백준알고리즘] 문자열 - 10809번 알파벳 찾기 문제 (0) | 2022.07.12 |
[백준알고리즘] 문자열 - 11720 숫자의 합 문제 (0) | 2022.07.08 |