如何将数字逗号分隔的字符串转换为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]);
}
}
}
这是它们的更好的解决方案吗?请提出建议,或者这是做到这一点的唯一最佳解决方案。如何将数字逗号分隔的字符串转换为int数组
这个问题的主要目的是找到最好的解决方案。
的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
更改时您的代码不会中断。
编辑2:我也改变了命名的位,使代码更清晰。
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]);
}
谢谢我没有关于java 8,任何与java 7相关的解决方案。 –
@PrabhatYadav我编辑了我的解决方案,但是你已经非常了解最好你可以在Java 7中做到 – MartinS
通过在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]);
嗯是一个颇具创新性的解决方案 – shmosel
既然你不喜欢的Java 8,这里是最好的™使用一些番石榴公用事业解决方案:
int[] numbers = Ints.toArray(
Lists.transform(
Splitter.on(',')
.omitEmptyStrings()
.splitToList("1,2,3,1,2,2,1,2,3,"),
Ints.stringConverter()));
注:这个问题已经被[交叉张贴在代码审查(http://codereview.stackexchange.com/q/121756/9357)。 (没关系,但是请向其他用户声明交叉帖子。) –