코딩테스트/JAVA
[ 백준 ] 11654번 : 아스키 코드
어서오시우
2024. 1. 29. 14:34
728x90
문제
풀이 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int ch = sc.next().charAt(0);
System.out.println(ch);
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int ch = sc.next().charAt(0);
System.out.println(ch);
}
}
- int ch = sc.next().charAt(0);
- 얻어온 문자는 int 타입의 변수에 저장되는데,
자바에서는 문자를 정수로 변환할 때 해당 문자의 유니코드 코드포인트를 사용한다. - 유니코드 코드포인트는 아스키 코드의 일종으로, 아스키 코드보다 넓은 범위의 문자를 다루기 위해 설계되었다.
숫자와 알파벳 대문자, 소문자의 경우 아스키 코드와 유니코드 코드포인트가 동일하다.
- 얻어온 문자는 int 타입의 변수에 저장되는데,
풀이 2
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
int a = System.in.read();
System.out.println(a);
}
}
public class Main {
public static void main(String[] args) throws IOException {
int a = System.in.read();
System.out.println(a);
}
}
- Scanner 와 같은 함수 없이도 System.in을 이용하여 Syste.in.read( ) 와 같은 방식으로
직접 표준 입력에서 바이트를 읽어올 수 있다. - System.in.read( )는 InputStream 클래스의 메서드로서, 한 번에 하나의 바이트를 읽는다.
- 다만, System.in.read( )는 바이트 단위로 읽기 때문에 문자열이나 여러 바이트로 구성된 데이터를 처리하기에는 적절하지 않으며, 해당 경우에는 Scanner나 BufferedReader와 같은 클래스를 사용하는 것이 편리하다.
- System.in.read( ) 는 표준 입력에서 데이터를 읽는 메서드로,
입력에서 한 바이트를 읽어서 해당 바이트의 ASCII 코드 값을 반환한다.- 반환 값은 int 형식으로 반환된다.
- 입력이 더 이상 없을 경우 -1을 반환한다.