Witam,
Mam taki przypadek:
a[0]=10; a[1]=5341; a[2]=51;
Chciałbym to zamienić na jedną liczbę 10534151.
Witam,
Mam taki przypadek:
a[0]=10; a[1]=5341; a[2]=51;
Chciałbym to zamienić na jedną liczbę 10534151.
int[] tab = new int[] { 10, 5341, 51 };
string s = $"{tab[0]}{tab[1]}{tab[2]}";
int res = Convert.ToInt32(s);
btw to jest C# i nie wiem czy tak samo w Javie to zrobisz, ale z przerobieniem nie powinieneś mieć problemu
Nie podałeś zbyt wielu konkretów - m.in. czy tablica zawsze ma ten sam rozmiar, jaki jest zakres liczb, które chcesz składać, co chcesz z nimi potem zrobić (tylko gdzieś wyświetlić, czy np. przekazać do dalszych obliczeń) ale pierwsze co mi przychodzi do głowy to zamiana każdej liczby na string, a potem sklejenie tego stringu. Jeśli będzie potrzebna potem liczba, możesz zamienić string na liczbę.
Wieśniacki sposób to zwyczajnie:
int[] a = new int[3];
a[0]=10; a[1]=5341; a[2]=51;
Long.valueOf(Arrays.stream(a).mapToObj(String::valueOf).collect(Collectors.joining()));
Właśnie, nie wiadomo jak wielkie liczby mogą się pojawić; ja bym to na wszelki wypadek zrobił na bigintegerach (jak się da):
import java.math.BigInteger;
class Main {
static BigInteger concatArray(int [] arr) {
int limit = arr.length;
String s = "";
for (int i = 0; i < limit;++i) {
s += Integer.toString(arr[i]);
}
return new BigInteger(s);
}
static int concatArray2(int [] arr) {
int limit = arr.length;
String s = "";
for (int i = 0; i < limit;++i) {
s += Integer.toString(arr[i]);
}
return Integer.parseInt(s);
}
public static void main(String[] args) {
int arr [] = {10, 1234, 678};
System.out.println(concatArray(arr)); // -> 101234678
System.out.println(concatArray2(arr)); // -> 101234678
}
}
public class Main {
public static int splitArrayNumbers(int[] tab){
String[] strTab = new String[tab.length];
String splitNumber = "";
for(int i=0; i<tab.length; i++){
strTab[i] = Integer.toString(tab[i]);
splitNumber = splitNumber + strTab[i];
}
return Integer.parseInt(splitNumber);
}
public static void main(String[] args) {
int tab[] = new int[] {10, 5341, 51};
int number = splitArrayNumbers(tab);
System.out.println(number);
}
}