Java数据读入之控制台读入
Scanner
基础
① 创建Scanner对象
Scanner input = newScanner(System.in);
②
读取整型数据。(忽略有效数据前的空格,读到空格换行停止)
int n = input.nextInt();
读取浮点型数据。(忽略有效数据前的空格,读到空格换行停止)
float f = input.nextFloat();
读取双精度浮点型数据。(忽略有效数据前的空格,读到空格换行停止)
double d = input.nextDouble();
读入字符串 : next()方法和nextLine()方法:
next()方法忽略有效字符前的空白,读取到空格停止,且next()读取后光标放在同一行
String str1 = input.next();
输入和输出:
nextLine()方法读取一切符号,不会忽略有效字符前的空格,即读取一行全部内容,读取后光标定位在下一行
String str2 = input.nextLine();
输入和输出:
③ 最后结束输入
input.close();
进阶
创建Scanner对象
Scanner input = new Scanner(System.in);
在读入时都可以先用hasNext…()判断是否有正确的输入,以next()方法和nextInt()方法为例:
String str; int n;
if(input.hasNext()){
str = input.next();
}
if(input.hasNextInt())
n = input.nextInt();
}
读取很多数,数之间以换行符隔开,即一行一个数,最后以空行结束:
int[] sum = new int[10];
String nextLine = in.nextLine();
int i = 0;
while(nextLine != null && !nextLine.equals("")){
sum[i] += Integer.parseInt(nextLine);
nextLine = in.nextLine();
i++;
}
System.out.print(Arrays.toString(sum));
输入多个以空格隔开的数:
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String[] numstr = str.split(" ");
int[] a = new int[numstr.length];
for(int i = 0; i < numstr.length; i++) {
a[i] = Integer.parseInt(numstr[i]);
}
System.out.println(Arrays.toString(a));