궁금증 연구소

안녕하세요. 궁금증연구소입니다.

오늘 포스팅 주제는 "java 문자형 숫자를 숫자형(int)으로 바꾸는 방법"입니다.

 

package ch05;

import java.util.Scanner;

public class p220 {

	public static void main(String[] args) {
		final int SIZE = 10;
		int x=0, y=0;
		
		char[][] board = new char[SIZE][SIZE];
		byte[][] shipBoard = {
			// 1  2  3  4  5  6  7  8  9
			  {0, 0, 0, 0, 0, 0, 1, 0, 0 }, //1
			  {1, 1, 1, 1, 0, 0, 1, 0, 0 }, //2
			  {0, 0, 0, 0, 0, 0, 1, 0, 0 }, //3
			  {0, 0, 0, 0, 0, 0, 1, 0, 0 }, //4
			  {0, 0, 0, 0, 0, 0, 0, 0, 0 }, //5
			  {1, 1, 0, 1, 0, 0, 1, 0, 0 }, //6
			  {0, 0, 0, 1, 0, 0, 1, 0, 0 }, //7
			  {0, 0, 0, 1, 0, 0, 1, 0, 0 }, //8
			  {0, 0, 0, 0, 0, 1, 1, 1, 0 }, //9
		};
		
		for(int i=1; i<SIZE; i++) {
			board[0][i] = board[i][0] = (char)(i+'0');
		}
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			System.out.printf("좌표를 입력하세요. (종료는 00)>");
			String input = sc.nextLine();
			
			if (input.length()==2) {
				x = input.charAt(0) - '0';
				y = input.charAt(1);

 

자바의 정석 예제 코드를 따라 치다가,

자바코드

위와 같은 코드를 보게 되었습니다. input으로 받은 String 자료형에서 charAt 함수로 0번째 인덱스의 문자(char)를 가져옵니다. 이때 문자형 숫자에 '0'을 빼면 x는 int형이 됩니다.

 

왜냐하면 '0'은 아스키코드 상으로 48에 해당하기 때문에

49인 문자형 숫자 '1'에서 '0'을 빼면 진짜 숫자 1이 나오게 됩니다.

즉, '1'~'9' 사이의 숫자에 '0'을 빼면 숫자로 형 변환이 가능합니다.

 

혹은 String형을 통으로 Integer 클래스의 parseInt 메서드를 이용하는 방법이 있습니다.

public class test {

	public static void main(String[] args) {
		String str = "33";
//		
//	
		System.out.println(Integer.parseInt(str)+2);
	}

}

위와 같이 Integer.paserInt(String 숫자 자료형)을 넣으면 String을 int형으로 형 변환하여 사용 가능합니다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading