如何在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数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在c ++中将int数组转换为字节数组[重复]

如何在java中将字符串集合转换为字符串数组[重复]

在java中将字符串数组元素转换为字节数组[重复]

在Java 8中将整数数组转换为字符串数组的最简单方法[重复]

如何在 Java 中将 Integer[] 转换为 int[] 数组?

如何在python中将数组字符串转换为数组[重复]