본문 바로가기
ONLINE JUDGE/문자열

[백준11654] 아스키 코드

by W_W_Woody 2022. 3. 4.

https://www.acmicpc.net/problem/11654

 

11654번: 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


https://st-lab.tistory.com/41?category=830901 

 

JAVA [자바] - 입력 뜯어보기 [Scanner, InputStream, BufferedReader]

이 글을 지금 이 시점에 써야 할까 고민을 많이 했다. 사실 자바를 그냥 다룰 줄만 아는 것에 목표를 둔다면 이 글이 무의미할 수도 있다. 그러나 자바에 대해 조금이라도 관심이 있고 더 배우고

st-lab.tistory.com

System.out.print

package s07_string;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MJ_01_11654 {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String str = br.readLine();
		int A = str.charAt(0);
		System.out.println(A);

		br.close();
	}
}

BufferedWriter

package s07_string;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

//소문자 대문자 숫자 구별??? X
public class MJ_01_11654_2 {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String str = br.readLine();
		int A = str.charAt(0);
		
//		System.out.println(A);
//		bw.write(A); //고대로 출력된다.
//		bw.write(A+"");
		bw.write(String.valueOf(A));

		br.close();
		bw.flush();
		bw.close();
	}
}

BufferedWriter의 write로 출력할 때, 문자열로 출력 된다. 뒤에 + ""를 붙여주면 int형으로 변환 된다.

(write의 특성인 int를 입력하면 char로 출력하기 때문에 또다시 string으로 출력)
bw.write(String.valueOf(A));
 
기본적으로 BufferReader는 String만 읽는다.

 

다른 데이터타입으로 받으려면 String으로 형변환 해주어야하고 Writer를 쓸 때에도 마찬가지이다.
즉, int를 Read & Write 하려면 먼저, String으로 Read한 숫자를 int로 바꿔서 변수에 담는다.
그러고나서 그 변수를 Write하려면, int형태로 바뀐 정수를 다시 String형태로 형변환해서 Write해야한다.

 

String.valueof()  |  Object.toString()

보통 문자열로 형 변환 시 toString()을 자주 사용하는데,

toString()은 null값을 문자열로 형 변환 시 NullPointerException오류를 발생시킵니다.

반면에 String.valueOf()를 사용하면 전달받은 파라미터가 null이 전달될 경우 문자열 "null"을 반환합니다.

Integer.valueOf( )  |  Integer.parseInt( )

Integer 라는 래퍼클래스(Wrapper Class)가 가지고 있는 메서드들이다.

이 메서드들은 String → int로 바꿀수 있다.

하지만 차이점이라면 반환값에 있다.

Integer.valueOf("10") 은 Integer 타입으로 반환하고,

Integer.parseInt("10") 은 int 타입으로 반환한다.

 

 

 

 

'ONLINE JUDGE > 문자열' 카테고리의 다른 글

[백준1152] 단어의 개수  (0) 2022.03.11
[백준1157] 단어 공부  (0) 2022.03.10
[백준2675] 문자열 반복  (0) 2022.03.09
[백준10809] 알파벳 찾기  (0) 2022.03.08
[백준11720] 숫자의 합  (0) 2022.03.05

댓글