java.util.Scanner是Java5的新特性,我们可以通过Scanner类很容易获取到用户的输入
1.通过next()方法或者nextLine()方法可以获取输入的字符串。
这里以nextLine()方法为例:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
System.out.println("请输入数据:");
Scanner sc=new Scanner(System.in);
if(sc.hasNextLine()){
String s=sc.nextLine();
System.out.println("输入的数据为:"+s);
}
}
}
nextLine方法接收:
test1 test2
输入的数据为:test1 test2
而当我们使用next方法接收:
test1 test2
输入的数据为:test1
next()与next()方法的区别:
next():
- 输入有效字符后才将其后面输入的空白或者回车作为结束符
- 有效字符之前的空白,会自动将其过滤掉。
- 不能得到带有空格的字符串。
nextLine():
- 可以获得回车符之前的所有数据(也可以从字面上理解为获取一行输入)。
- 显然,它可以获得空白。
2.通过nextLine()获取输入的一行数字(面试经常要考虑的输入格式问题)
具体代码和注释如下,注意分割字符串,并且将String类型转化为int类型,注意数组下标,即可。
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int a[]=new int[99];
if(sc.hasNextLine()){
String s=sc.nextLine();
String temp[]=s.split(" ");//分割字符串,去除空白符
int count=0,sum=0;
for (String s1 : temp) {
a[count]= Integer.parseInt(s1); //String转化为int类型
count++;
}
for(int i=0;i<count;i++){
System.out.print(a[i]+" ");
}
}
sc.close();
}
}
输入:521 13 14
输出 :521 13 14
3.通过nextInt()直接获取int类型的数字,不用对输入格式进行转化。
import java.util.*;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int input[] = new int[N];
for (int k=0; k<N;k++){
input[k]=sc.nextInt();
}
for (int k=0; k<N; k++){
System.out.print(input[k]);
System.out.print(" ");
}
}
}
输入
3
13 14 15
输出
13 14 15