这可能是Java中最简单的输入方法(确信)
我们需要在开头先导入一个包:
import java.util.Scanner;
然后创建一个Scanner类的对象:
Scanner sc = new Scanner(System.in); //对象名sc可替换,下面与其保持一致就好
然后就可以开心地读入各种数据了:
package demo0;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine(); //可以连续读一行,中间可以加空格
String b = sc.next(); //不可以连续读
int c = sc.nextInt(); //读整形
double d = sc.nextDouble(); //读double
float e = sc.nextFloat(); //读float
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
}
}
/*
input:
I love your name.
qaq_qaq
1
1
1.1
output:
a = I love your name.
b = qaq_qaq
c = 1
d = 1.0
e = 1.1
*/
然而,我们有时候可能接收不到我们想要的数据类型,比如你想要得到一个整数扔过来的却是字符串,这时候就会报错
因此,我们可以用如下方法来避免:
package demo0;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("How old are you?");
int num;
if (sc.hasNextInt()) {
num = sc.nextInt();
System.out.println("Your age is " + num);
}
else {
System.out.println("Don't kidding me!!!");
}
}
}
/*
input:
16
output:
Your age is 16
input:
fucking here
output:
Don't kidding me!!!
*/
对于输入的数据,在输入之前可以先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取