Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将单个数字数组转换为整数_Java - Fatal编程技术网

Java 将单个数字数组转换为整数

Java 将单个数字数组转换为整数,java,Java,例如: 我有一个数组{1,5,3,6,3} 我想找到一种方法将其转换为int类型 所以intx=15363而不是int[]d={1,5,3,6,3} 建议?1.)迭代int数组 2.)使用StringBuilder追加每个数字 3.)最后解析数字,以获得所需的结果 public static void main(String[] args) { int nums[] = { 1, 5, 3, 6, 3 }; StringBuilder strNum = new

例如:

我有一个数组{1,5,3,6,3}

我想找到一种方法将其转换为int类型

所以
intx=15363
而不是
int[]d={1,5,3,6,3}

建议?

1.)迭代int数组

2.)使用StringBuilder追加每个数字

3.)最后解析数字,以获得所需的结果

 public static void main(String[] args) {
        int nums[] = { 1, 5, 3, 6, 3 };

        StringBuilder strNum = new StringBuilder(nums.length);

        for (int num : nums) {
            strNum.append(num);
        }
        int finalInt = Integer.parseInt(strNum.toString());
        System.out.println(finalInt);
    }
输出

15363
一种(非常低效)的方法是从整数数组中构建一个
字符串
,然后使用
integer.parseInt()
将其转换为
int


事实上,你真的不想做这种转换,尤其是大规模的转换

这里有一个基于数学的方法:

像15363这样的数字如下所示:

1*10^4 + 5*10^3 + 3*10^2 + 6*10^1 + 3*^10^0
这里的算法使用
Math.pow
方法来计算
10^x
(x的十次方)

int[]位={1,5,3,6,3};
整数总数=0;
对于(int i=0;i
对于大声哭——这是一个简单的转换。不需要花哨的功能

int[] digits = {1, 5, 3, 6, 3};
int totalNumber = 0;
for (int i = 0; i < digits.length; i++) {
    totalNumber = (totalNumber * 10) + digits[i];
}
System.out.println(totalNumber);
int[]位={1,5,3,6,3};
整数总数=0;
对于(int i=0;i
您需要一个算法来实现这一点。例如:

String s = ""; 
for(int c: d) { s += c; } 
int x = Integer.parseInt(s);

要做到这一点并不容易。您将需要一个算法来实现这一点。例如:
String s=”“;对于(intc:d){s+=c;}intx=Integer.parseInt(s)将x转换为字符串和拆分字符串,并将拆分的字符串转换为int@KickButtowski用于转换的变量错误。OP希望将数组转换为单个整数。@shinjw请将您的第一条注释转换为答案,以便我可以对其进行投票?这是一种你否认存在的“简单方法”,比这里的一些答案要好。如果你能解释如何解决这类问题,并详细说明为什么选择这样做,这个答案会更有用。否则,没有人学习任何东西。如果你打算使用这种方法,你可能想考虑使用。您可以根据输入数组的大小“在大多数情况下”得到一个“良好”的大小估计值。@JasonC根据您的评论,解释补充道。@Scottmithell-按照您的建议做没有实际意义。默认值16足够大,可以容纳任何不会溢出
int
数据类型的内容。你的建议就是在我们计算元素的时候把速度放慢一点。最好只编写
新的StringBuilder()
。。。。从计算机的角度来看,
新的StringBuilder(16)
新的StringBuilder()
是相同的,从人类的角度来看,它们有着稍微不同的细微差别。软件开发的艺术之一是让代码与人交流,也与计算机交流。这种方法应该比基于字符串的方法更有效,但要注意溢出(假设溢出是不需要的)。好的一点(当使用
int
表示
totalNumber
时感觉不好,但忽略了它:)我想这是每种方法的一个整体问题,当把一个int数组转换成一个单独的数字时,溢出总是一个问题,但是其他解决方案可能会正确地处理它。例如,使用
Integer.parseInt
的解决方案将引发溢出异常。如果您使用字符串转换方法,请使用StringBuilder.+1向我展示明显的解决方案,我想不起来!仍然不会将
Math.pow()
视为花哨:)再次注意溢出,如果这对您的用例很重要的话。
String s = ""; 
for(int c: d) { s += c; } 
int x = Integer.parseInt(s);