如何在java中将字符串数组转换为int数组[重复]
Posted
技术标签:
【中文标题】如何在java中将字符串数组转换为int数组[重复]【英文标题】:How to convert string array to int array in java [duplicate] 【发布时间】:2016-05-23 08:18:28 【问题描述】:我在java程序中有一个这样的字符串数组
String[] results = "2", "1", "5", "1" ;
我想将其转换为整数数组,如下所示:
int[] results = 2, 1, 5, 1 ;
最后我想找到该数组中所有int
元素的总和。
【问题讨论】:
请添加您尝试过的代码。 这能回答你的问题吗? Converting a String Array to an Int array 【参考方案1】:String resultsStr[] = "2", "1", "5", "1";
ArrayList intermediate = new ArrayList();
for(String str : resultsStr)
intermediate.add(Integer.parseInt(str, 10)); //the 10 could be ommitted
int resultsInt[] = intermediate.toArray();
您的resultsInt[]
将包含整数数组。虽然我同意它不必通过数组列表(没有它也可以完成),但我使用它只是因为它更容易输入。
【讨论】:
是的,我在编辑中添加了基数并将其添加到错误的位置。我的错。【参考方案2】:如果你使用的是 java 8 试试这个:
int[] array = Arrays.stream(resultsStr).mapToInt(Integer::parseInt).toArray();
【讨论】:
【参考方案3】:这是我的简单解决方案:
public class Tester
public static void main(String[] args)
// TODO Auto-generated method stub
String results[]="2","1","5","1";
//Creating a new array of Type Int
int result [] = new int[4];
int sum = 0;
//Going trough every element in results And Converting it to Int By using : Integer.valueOf(String str)
for (int i = 0; i < results.length; i++)
result[i] = Integer.valueOf(results[i]);
//Displaying the result
for (int i = 0; i < result.length; i++)
System.out.println(result[i]);
sum += result[i];
System.out.println("The sum of all elements is : " + sum);
【讨论】:
Integer.valueOf
返回一个Integer
,它被拆箱成一个int
——如果你想要一个int
,你应该直接使用Integer.parseInt
。
感谢您的通知【参考方案4】:
我可能有点晚了,但这是一个简单的解决方案,它基本上使用 for 循环遍历字符串数组,将解析的整数值添加到新的整数数组中,并将整数添加为它去。另请注意,我移动了 String 数组类型 String[] results
的方括号,因为它不仅不那么令人困惑,而且数组是类型的一部分,而不是数组名称的一部分。
public class test
public static void main(String[] args)
String[] results = "2", "1", "5", "1" ;
// Create int array with a pre-defined length based upon your example
int[] integerArray = new int[results.length];
// Variable that holds the sum of your integers
int sumOfIntegers = 0;
// Iterate through results array and convert to integer
for (int i = 0; i < results.length; i++)
integerArray[i] = Integer.parseInt(results[i]);
// Add to the final sum
sumOfIntegers += integerArray[i];
System.out.println("The sum of the integers is: " + sumOfIntegers);
您也可以先创建整数数组,然后在循环之后将数字相加,但在这种情况下,我们假设字符串数组都是整数,所以我看不出有什么理由让它变得太复杂.
【讨论】:
【参考方案5】:一个简单的解决方案是:
private void toIntArray(String[] strings)
Integer[] intArray=new Integer[strings.length];
int i=0;
for(String str:strings)
intarray[i]=Integer.parseInt(str.trim());
i++;
【讨论】:
【参考方案6】:此代码将String
数组转换为int
数组并计算所有int
数组元素的总和:
String[] input = "2", "1", "5", "1" ;
int[] results = Stream.of(input).mapToInt(Integer::parseInt).toArray();
int sum = Arrays.stream(results).sum();
System.out.println("SUM: " + sum);
如果您不需要 int[]
数组,则使用较短的版本:
String[] input = "2", "1", "5", "1" ;
int sum = Stream.of(input).mapToInt(Integer::parseInt).sum();
System.out.println("SUM: " + sum);
这适用于 Java 8 及更高版本。
【讨论】:
以上是关于如何在java中将字符串数组转换为int数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在Java 8中将整数数组转换为字符串数组的最简单方法[重复]