【问题标题】:Way to combine integer array to a single integer variable? [duplicate]将整数数组组合成单个整数变量的方法? [复制]
【发布时间】:2015-11-09 11:04:31
【问题描述】:

在通过余数过程找到一个数字的各个数字后,这些数字被保存在一个数组中。 我现在想要的是获取这个数组的各个元素并为其创建一个整数值。

例如。

int a = 4400

使用递归 (4400/10) 保存在数组中的数字: 设数组为 arr[]

arr[0]=0;
arr[1]=0;
arr[2]=4;
arr[3]=4;

最终值:

int b= 4400 (by combining elements of array)

所以我想知道有没有办法将数组元素组合成一个整数值?

【问题讨论】:

  • 乘法和加法。
  • 有办法的。它类似于您分解它的方式。请试一试。

标签: java arrays


【解决方案1】:

只需将数字相乘并相加即可:

int result = 1000 * arr[3] + 100 * arr[2] + 10 * arr[1] + arr[0];

或者,如果您需要它适用于任何长度的数组(最多为Integer.MAX_VALUE 中的位数):

int result = 0;
for (int i = arr.length - 1; i >= 0; --i) {
  result = 10*result + arr[i];
}

【讨论】:

  • 应尽可能避免在循环中使用i--,因为它更不符合您认为的人类数学和逻辑推理。只需在此处留下此评论,以供搜索相同答案的新用户使用。
【解决方案2】:

我会使用字符串生成器。

StringBuilder builder = new StringBuilder();
builder.append(arr[3]);
builder.append(arr[2]);
builder.append(arr[1]);
builder.append(arr[0]);
System.out.println("Combined value is: " + Integer.parseInt(builder.toString());

【讨论】:

  • 正如您在问题中看到的,最终值应该是int
  • 结果不是int,数字取反了。
  • 我已经编辑了答案
  • 它很有用,谢谢JBiss
【解决方案3】:

如何使用简单的循环和乘法(假设您了解基本数学)

int b = 0;
int z = 10;
for (int i = 1; i <= arr.length; i++) {
   b = (int) (b + (arr[i - 1] * Math.pow((double) z, i - 1)));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2014-04-12
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多