JAVA中如何将数字转化为数组

JAVA中如何将数字转化为数组

作者:Rhett Bai发布时间:2026-02-10阅读时长:0 分钟阅读次数:11

用户关注问题

Q
如何将一个整数转换为数字数组?

我有一个整数,想把它的每一位数字分割开并存入数组,该怎么实现?

A

将整数转换为数字数组的方法

可以将整数转换成字符串,然后使用String的toCharArray方法获取字符数组,最后将每个字符转换成对应的数字,存入整型数组。例如:

int number = 12345;
String str = String.valueOf(number);
int[] digits = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
    digits[i] = str.charAt(i) - '0';
}

这样digits数组中就包含了数字的每一位。

Q
如何处理包含小数的数字转换成数组?

如果数字是浮点数,我想把整数部分和小数部分都转换成数字数组,有好的方法吗?

A

浮点数转换为数字数组的方案

可以先将浮点数转换成字符串,然后去除小数点,将剩余字符转换成数字数组。例如:

double num = 123.45;
String str = String.valueOf(num).replace(".", "");
int[] digits = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
    digits[i] = str.charAt(i) - '0';
}

这样可以得到数字的所有位数组成的数组。如果想区分整数和小数部分,则需要使用String的split方法分开处理。

Q
有没有不用字符串转换,直接用数学方法分解数字成数组?

我想避免使用字符串转换,能不能通过数学计算直接把数字拆分成数组?

A

用数学方法拆分数字成数组

可以通过取模(%)和除法(/)实现数字拆分。先计算数字的长度,或者先把数字反向拆分,存入一个列表,再反转列表获取正确顺序。例如:

int number = 12345;
List<Integer> list = new ArrayList<>();
while (number > 0) {
    list.add(number % 10);
    number = number / 10;
}
Collections.reverse(list);
int[] digits = list.stream().mapToInt(i -> i).toArray();

这样做可以不用字符串转换实现数字拆分。