如何将数字逗号分隔的字符串转换为int数组

时间:2016-03-03 06:46:13

标签: java arrays string int

    //convert the comma separated numeric string into the  array of int. 
    public class HelloWorld
    {
      public static void main(String[] args)
      {
       // line is the input  which have the comma separated number
        String line = "1,2,3,1,2,2,1,2,3,";
       // 1 > split   
         String[] inputNumber =  line.split(",");
       // 1.1 > declare int array
         int number []= new int[10];
       // 2 > convert the String into  int  and save it in int array.
         for(int i=0; i<inputNumber.length;i++){
               number[i]=Integer.parseInt(inputNumber[i]);
         }
    }
}

这是他们做任何更好的解决方案吗?请建议或它是唯一的最佳解决方案。

我这个问题的主要目的是找到最佳解决方案。

3 个答案:

答案 0 :(得分:4)

Java 8流提供了一个漂亮而干净的解决方案:

String line = "1,2,3,1,2,2,1,2,3,";
int[] numbers = Arrays.stream(line.split(",")).mapToInt(Integer::parseInt).toArray();

编辑:由于您要求使用Java 7 - 您所做的已经很不错,我只更改了一个细节。您应该使用inputNumber.length初始化数组,这样如果输入String发生更改,您的代码就不会中断。

Edit2:我还更改了命名,使代码更清晰。

String line = "1,2,3,1,2,2,1,2,3,";
String[] tokens = line.split(",");
int[] numbers = new int[tokens.length];
for (int i = 0; i < tokens.length; i++) {
    numbers[i] = Integer.parseInt(tokens[i]);
}

答案 1 :(得分:1)

由于您不喜欢Java 8,因此这是使用一些Guava实用程序的Best™解决方案:

int[] numbers = Ints.toArray(
        Lists.transform(
                Splitter.on(',')
                        .omitEmptyStrings()
                        .splitToList("1,2,3,1,2,2,1,2,3,"),
                Ints.stringConverter()));

答案 2 :(得分:0)

通过在Java 7中执行此操作,您可以先获取String数组,然后将其转换为int数组:

String[] tokens = line.split(",");
int[] nums = new int[tokens.length];

for(int x=0; x<tokens.length; x++)
    nums[x] = Integer.parseInt(tokens[x]);