import java.util.Arrays;
public class DigitsToNumber {
// ------------------------------------------------------------
// method 1: join digits as strings
// Example: [1,2,3,4] → "1234" → 1234
// ------------------------------------------------------------
static int digitsToNumberJoin(int[] digits) {
StringBuilder sb = new StringBuilder();
for (int d : digits) {
sb.append(d);
}
return Integer.parseInt(sb.toString());
}
// ------------------------------------------------------------
// method 2: mathematical folding (no strings)
// Example: [1,2,3,4] → (((1*10)+2)*10+3)*10+4
// ------------------------------------------------------------
static int digitsToNumberMath(int[] digits) {
int n = 0;
for (int d : digits) {
n = n * 10 + d;
}
return n;
}
// ------------------------------------------------------------
// method 3: using streams (Java 8+)
// ------------------------------------------------------------
static int digitsToNumberStream(int[] digits) {
String s = Arrays.stream(digits)
.mapToObj(String::valueOf)
.reduce("", (a, b) -> a + b);
return Integer.parseInt(s);
}
// ------------------------------------------------------------
// main
// ------------------------------------------------------------
public static void main(String[] args) {
int[] digits = {4, 6, 3, 9, 1, 2};
System.out.println("Using join(): " + digitsToNumberJoin(digits));
System.out.println("Using math(): " + digitsToNumberMath(digits));
System.out.println("Using stream(): " + digitsToNumberStream(digits));
}
}
/*
run:
Using join(): 463912
Using math(): 463912
Using stream(): 463912
*/