SHUSTORY

[ 백준 ] 11654번 : 아스키 코드 본문

코딩테스트/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);
}
}
  • int ch = sc.next().charAt(0);
    • 얻어온 문자는 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);
}
}
  • Scanner 와 같은 함수 없이도 System.in을 이용하여 Syste.in.read( ) 와 같은 방식으로
    직접 표준 입력에서 바이트를 읽어올 수 있다.
  • System.in.read( )는 InputStream 클래스의 메서드로서, 한 번에 하나의 바이트를 읽는다.
    • 다만, System.in.read( )는 바이트 단위로 읽기 때문에 문자열이나 여러 바이트로 구성된 데이터를 처리하기에는 적절하지 않으며, 해당 경우에는 Scanner나 BufferedReader와 같은 클래스를 사용하는 것이 편리하다.
  • System.in.read( ) 는 표준 입력에서 데이터를 읽는 메서드로,
    입력에서 한 바이트를 읽어서 해당 바이트의 ASCII 코드 값을 반환한다.
    • 반환 값은 int 형식으로 반환된다.
    • 입력이 더 이상 없을 경우 -1을 반환한다.

'코딩테스트 > JAVA' 카테고리의 다른 글

[백준] 10809번 : 알파벳 찾기  (1) 2024.02.06
[ 백준 ] 11720번 : 숫자의 합  (0) 2024.01.30
[ 백준 ] 27866번 : 문자와 문자열  (0) 2024.01.23
[ 백준 ] 3052번 : 나머지  (0) 2024.01.16
[ 백준 ] 2562번 : 최댓값  (1) 2023.12.04