예를 들어 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가 출력된 것을 확인할 수 있습니다.
'Java' 카테고리의 다른 글
[Java] File 클래스(1) / File(String pathname) / 경로 표기법 (0) | 2022.10.13 |
---|---|
[Java]컬랙션 정리 (0) | 2022.10.12 |
[Java] 시간과 날짜 클래스(LocalDate, LocalDateTime,LocalTme) (0) | 2022.10.10 |
[Java] 가상 메서드 / 상속에서 상위(부모) 클래스와 하위(자식) 클래스의 동일한 이름의 메서드가 있을 때 / 상속 메서드 호출 순서 (0) | 2022.10.10 |
[Java] int와 Integer 배열 정렬(Sorting) / 오름차순 / 내림차순 / (0) | 2022.10.08 |