Konwerja liczb tablicy na jedną liczbę.

0

Witam,
Mam taki przypadek:

a[0]=10; a[1]=5341; a[2]=51;

Chciałbym to zamienić na jedną liczbę 10534151.

2
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

3

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ę.

0

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()));
0

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
  }
}
0
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);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1