java - 从字符串中提取每个单独的数字
问题描述
我有这个作为输入“1 2 3 4 5”,我想要这样
int[] numbers = new int[5];
number[0] = 1;
number[1] = 2;
number[2] = 3;
number[3] = 4;
number[4] = 5;
那么如何从字符串中提取每个数字并将其放入 int 数组中呢?
ConsoleIO io = new ConsoleIO();
int[] numbers = new int[5];
io.writeOutput("Type in 5 numbers");
String input = io.readInput();
// If input is longer than 1 character for example, "1 2 3 4 5"
if(input.length() > 1) {
System.out.println(input.length());
for(int y = 0; y < io.readInput().length(); y++) {
numbers[y] = Integer.parseInt(io.readInput().substring(y, io.readInput().indexOf(" ")));
}
return;
}
// If input is one number for example, "1"
else {
for(int i = 0; i < numbers.length; i++) {
numbers[i] = Integer.parseInt(io.readInput());
}
}
else 有效,所以如果我输入一个数字并按回车键,然后按下一个数字,一切都很好。但是,如果我有一个中间有空格的数字序列(“1 2 3 4 5”),程序就会中断。
解决方案
为什么不使用Scanner
and then split
and parse
?
Scanner in = new Scanner(System.in);
String[] nums = in.nextLine().split(" ");
for(int i = 0; i <=5; i++) {
numbers[i] = Integer.parseInt(nums[i]);
}
推荐阅读
- python - 将所有XML文件转换为python文件夹中的JSON文件?
- android - 辅助功能服务单击自定义视图不起作用(performClick 未覆盖)
- php - 使用 Amazon RDS MySQL 数据库托管在 Heroku 上的 Laravel 应用程序导致连接超时
- angular - 使用 PrimNG TurboTable 和 Angular 6 获取索引
- python - django模型字段的不同setter和getter
- php - PHP在循环内提交表单后检索先前的值
- c - 通过 2D 矩阵 Bubble-Sort C
- dependency-injection - 尝试在不使用某个食谱的依赖项的情况下运行 Chef-client
- ngrx - @ngrx 动作被无限调用并带有效果
- google-apps-script - 从gs中的函数返回值到html