我将此作为输入“ 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());
}
}
其他方法有效,因此,如果我输入一个数字,然后按Enter键,然后输入下一个数字,那一切都很好。但是,如果我有一个介于(“ 1 2 3 4 5”)之间的数字序列,程序就会中断。
答案 0 :(得分:1)
为什么不先使用Scanner
然后再使用split
和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]);
}
答案 1 :(得分:1)
const parent = document.querySelector('.here')
const target = parent.firstElementChild
console.log(target.innerHTML)
/*
<!-- This is the parent -->
<span>
<span>
<span>a</span>
<span>b</span>
</span>
</span>
*/
答案 2 :(得分:1)
假设您输入的数字始终是彼此之间有空格(或只有一个数字)的数字,在Java 8中,您可以按以下方式工作:
String[] splits = input.split(" ");
int[] result = Arrays.stream(splits).mapToInt(Integer::parseInt).toArray();
答案 3 :(得分:0)
import java.util.*;
public class Solution {
public static void main(String []args) {
Scanner in = new Scanner(System.in);
String[] nums = in.nextLine().split(" ");
int[] numbers = new int[5];
for(int i = 0; i <5; i++) {
numbers[i] = Integer.parseInt(nums[i]);
System.out.println(numbers[i]);
}
}
}