본문 바로가기
Java

[Java] 입력받은 정수를 배열로 저장하기 / charAt(int i) - '0' / 문자를 정수형으로 / 정수를 배열로 바꾸기

by bkuk 2022. 10. 10.

예를 들어 String A = "123456"와 같은 자료형이 String인 문자열을 입력받으면,

Array[] = { 1 , 2, 3, 4, 5, 6 } 와 같이 배열로 바꿀 수 있습니다.

String A = "123456";

int[] Arrays = new int[A.length()];

for( int i = 0; i < A.length(); i++ ) {

    Arrays[i] = A.charAt(i) - '0';
}

    for( int j = 0; j < A.length(); j++ ) {
        System.out.println( "A[" + j + "]=" + Arrays[j]);

    //		A[0]=1
    //		A[1]=2
    //		A[2]=3
    //		A[3]=4
    //		A[4]=5
    //		A[5]=6

    }

 


위의 코드 내용을 설명하겠습니다.

 

만약 입력받은 StringcharAt() 메서드를 사용해서 출력한다면,

 

문자 '1'을 의미할까요?, 숫자 1을 의미할까요?

 

이것은 당연히 문자 '1'입니다.

 

우선 문자열정수로 바꾸고 싶다면 어떻게 해야할까요?

String A = "123456";

for( int i = 0; i < A.length(); i++) {

    System.out.print( A.charAt(i) + " " );	// 문자 1 2 3 4 5 6  출력
}

문자 1 ~ 6이 출력되었습니다. 이 문자를 정수화를 한다면?

 

 

아래와 같이 아스키코드 값으로 출력된 것을 확인할 수 있습니다.

String A = "123456";

for( int i = 0; i < A.length(); i++) {

    System.out.print( (int)A.charAt(i) + " ");	// 49 50 51 52 53 54 출력
}

 

'0'을 의미하는 아스키코드 값 48을 빼준다면?

String A = "123456";

for( int i = 0; i < A.length(); i++) {

    System.out.print( (int)A.charAt(i) - '0' + " ");	// 정수 1 2 3 4 5 6 출력
}

 

정수 1~6가 출력된 것을 확인할 수 있습니다.

 

댓글