【问题标题】:How to convert string array to int array in java [duplicate]如何在java中将字符串数组转换为int数组[重复]
【发布时间】:2016-05-23 08:18:28
【问题描述】:

我在java程序中有一个这样的字符串数组

String[] results = { "2", "1", "5", "1" };

我想将其转换为整数数组,如下所示:

int[] results = { 2, 1, 5, 1 };

最后我想找到该数组中所有int 元素的总和。

【问题讨论】:

标签: java arrays string int


【解决方案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 及更高版本。

        【讨论】:

          猜你喜欢
          • 2014-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-26
          相关资源
          最近更新 更多