Java
[Java] 입력받은 정수를 배열로 저장하기 / charAt(int i) - '0' / 문자를 정수형으로 / 정수를 배열로 바꾸기
bkuk
2022. 10. 10. 22:40
예를 들어 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
}
위의 코드 내용을 설명하겠습니다.
만약 입력받은 String을 charAt() 메서드를 사용해서 출력한다면,
문자 '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가 출력된 것을 확인할 수 있습니다.