Сначала вам придется конвертировать все числа в строку, а затем сцепить строки и разобрать его обратно в целое число. Вот одна реализации:
int arrayToInt(int[] arr)
{
//using a Stringbuilder is much more efficient than just using += on a String.
//if this confuses you, just use a String and write += instead of append.
StringBuilder s = new StringBuilder();
for (int i : arr)
{
s.append(i); //add all the ints to a string
}
return Integer.parseInt(s.toString()); //parse integer out of the string
}
Обратите внимание, что это приводит к ошибке, если какие-либо из значений прошлых первой в массиве, как отрицательные, так как минус знаки будут мешать разбор.
Этот метод должен работать для всех положительных целых чисел, но если вы знаете, что все значения в массиве будут иметь только одну цифру (как в вашем примере), вы можете вообще избегать операций с строками и просто использовать базовые математика:
int arrayToInt(int[] arr)
{
int result = 0;
//iterate backwards through the array so we start with least significant digits
for (int n = arr.length - 1, i = 1; n >= 0; n --, i *= 10)
{
result += Math.abs(arr[n]) * i;
}
if (arr[0] < 0) //if there's a negative sign in the beginning, flip the sign
{
result = - result;
}
return result;
}
Эта версия не будет выдавать ошибку, если какой-либо из значений прошлых первый отрицательны, но он будет производить странные результаты.
Для этого нет встроенной функции, поскольку значения массива обычно представляют собой разные числа, а не цифры в числе.
EDIT:
В ответ на ваши комментарии, попробуйте эту версию, чтобы иметь дело с долгот:
long arrayToLong(int[] arr)
{
StringBuilder s = new StringBuilder();
for (int i : arr)
{
s.append(i);
}
return Long.parseLong(s.toString());
}
Edit 2:
В ответ на ваш второй комментарий:
int[] longToIntArray(long l)
{
String s = String.valueOf(l); //expand number into a string
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); //fill the array with the numbers we parse from the sections
}
return result;
}
Перебирайте массив, преобразуйте каждый элемент в строку и поместите его в StringBuffer или просто соедините с строкой. –
ОК, ребята, хватит со строками ответов. Их 4. Этого достаточно. – Radiodef
Струны .... люди сумасшедшие или вообще не имеют никакого отношения к компьютерному программированию. Я передал ** ВСЕ ** ответы, связанные со строками. – Manu343726