首先你需要将每个数字转换为字符串,然后将这些字符串连接起来并解析回整数。以下是一种实现方法:
int arrayToInt(int[] arr)
{
StringBuilder s = new StringBuilder();
for (int i : arr)
{
s.append(i);
}
return Integer.parseInt(s.toString());
}
注意,如果数组中第一个值之后的任何一个值为负数,则会产生错误,因为减号会干扰解析。
此方法适用于所有正整数,但如果您知道数组中所有值只有一位数(就像在您的示例中一样),则可以完全避免使用字符串操作,直接使用基本运算。
int arrayToInt(int[] arr)
{
int result = 0;
for (int n = arr.length - 1, i = 1; n >= 0; n --, i *= 10)
{
result += Math.abs(arr[n]) * i;
}
if (arr[0] < 0)
{
result = - result;
}
return result;
}
这个版本如果其余数值为负数不会产生错误,但是会产生奇怪的结果。
没有内置函数可以做到这一点,因为数组的值通常表示不同的数字,而不是数字中的数字。
编辑:
根据您的评论,请尝试使用此版本来处理长整型:
long arrayToLong(int[] arr)
{
StringBuilder s = new StringBuilder();
for (int i : arr)
{
s.append(i);
}
return Long.parseLong(s.toString());
}
编辑2:
回应你的第二条评论:
int[] longToIntArray(long l)
{
String s = String.valueOf(l);
String token;
int[] result = new int[s.length() / 2];
for (int n = 0; n < s.length()/2; n ++) //loop through and split the string
{
token = s.substring(n*2, (n+2)*2);
result[n] = Integer.parseInt(token);
}
return result;
}