//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]);
}
}
}
这是他们做任何更好的解决方案吗?请建议或它是唯一的最佳解决方案。
我这个问题的主要目的是找到最佳解决方案。
答案 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]);