如何获取整数的单独数字?

2022-08-31 06:31:16

我有1100,1002,1022等数字。我想要单独的数字,例如,对于第一个数字1100,我想要有1,1,0,0。

如何在Java中获取它?


答案 1

为此,您将使用(mod)运算符。%

int number; // = some int

while (number > 0) {
    print( number % 10);
    number = number / 10;
}

mod运算符将为您提供对数字进行int除法的其余部分。

所以

10012 % 10 = 2

因为:

10012 / 10 = 1001, remainder 2

注意:正如保罗所指出的,这将以相反的顺序给你数字。您需要将它们推到堆栈上,然后以相反的顺序弹出它们。

按正确顺序打印数字的代码:

int number; // = and int
LinkedList<Integer> stack = new LinkedList<Integer>();
while (number > 0) {
    stack.push( number % 10 );
    number = number / 10;
}

while (!stack.isEmpty()) {
    print(stack.pop());
}

答案 2

将其转换为 String 并使用 String#toCharArray()String#split()。

String number = String.valueOf(someInt);

char[] digits1 = number.toCharArray();
// or:
String[] digits2 = number.split("(?<=.)");

如果您已经在使用Java 8,并且您碰巧想在之后对其进行一些聚合操作,请考虑使用String#chars()从中获取IntStream

IntStream chars = number.chars();