上代码:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
/**
* @Classname TypeKeyboard
* @Description 从键盘输入一连串数字,以空格分隔,按下回车结束,存入数组中并打印
* @Date 2022/3/31 10:37
* @Created by jiawen
*/
public class TypeKeyboard {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();//nextLine()检测到用户输入回车则结束;
String stringArray[] = inputString.split(" ");//split(regex:)方法通过regex形参作为分割符提取String中的数据;
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < stringArray.length; i++) {
list.add(Integer.parseInt(stringArray[i]));
}
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next()+" ");
}
}
}
Scanner是一个扫描器,录取到键盘的数据,先存到缓存区等待读取(此时还未读取),它判断读取结束的标示是 空白符;比如空格,回车,tab 等等。
对于next()方法,将空格看作是两个字符串的间隔,如果发现空格则读取空格前用户的输入作为String返回;
对于nextInt()方法,它同样是使用空格作为间隔符,只不过返回int类型的数据。
对于nextLine()方法,它将空格当作字符串处理,当发现用户按下回车则读取回车前所有的数据(包括空格等等)并作为String类型一并返回;
在上述代码中,使用nextLine()方法。首先口头规定用户输入时使用空格间隔,回车结束,随后拿到所有输入作为一个字符串,然后使用split()方法规定这个字符串的分割符号为空格,使用此规则将用户输入依次存入一个String数组,然后遍历数组将数组里的String数据转换为int,并加入list中。
测试:
因篇幅问题不能全部显示,请点此查看更多更全内容