본문 바로가기
CODE - TEST

[JAVA] int형 정수에서 각 자리수 값 가져오기

by 정공자씨 2024. 4. 21.

 

나눗셈 연산을 이용해서 구하는 방법

 

숫자를 10으로 반복해서 나누고

10으로 나머지 연산(%)을 하여 얻은 값으로, 일의 자리의 값을 구할 수 있음

int n = 12345;

int a, b, c, d, e; //각각 천의자리, 백의자리, 십의자리, 일의자리

----------------------------------------------------
e = n % 10; (나머지)
n /= 10; (몫)
----------------------------------------------------

e = 12345 % 10   // 5
n = 12345 / 10   // 1234

d = 1234 % 10   // 4
n = 1234 / 10   // 123

c = 123 % 10   // 3
n = 123 / 10   // 12

b = 12 % 10   // 2
n = 12 / 10   // 1

a = 1 % 10   // 1
n = 1 / 10   // 0

 

 

 

 

배열에 값 추가하기

값의 개수가 고정적이고 단순할 때는 배열(Array) 사용

public static void main(String[] args) {

        int num = 12345;
        int [] intArr = new int[10]; // 배열 생성
        int i = 0;

        while(num != 0){

            intArr[i] = num % 10;    // 나머지(각 자리의 값 추출)
            num = num/10;	// 10으로 나누어, 자리수를 1개 없애고, 몫을 남김

            i++; 

        }

        System.out.println( Arrays.toString(intArr) ); // 배열 출력 [5,4,3,2,1]

}

 

 

ArrayList에 값 추가하기

값의 개수가 정해지지 않은 경우에, ArrayList 사용

int num = 12345;

ArrayList<Integer> arrNum = new ArrayList<>();
while(num > 0) {

	arrNum.add(num %10);
	num /= 10;
}

System.out.println(arrNum);
//[5, 4, 3, 2, 1]

'CODE - TEST' 카테고리의 다른 글

[JAVA] 백준 10448번 : 유레카 이론  (1) 2024.01.02
[JAVA] 백준 2309번 : 일곱 난쟁이  (0) 2024.01.02
BufferedReader, InputStreamReader  (0) 2024.01.02