概述
Scanner类是Java中用于获取用户输入的常用工具类。它位于java.util包中,可以方便地读取不同类型的数据,如整数、浮点数、字符串等。
Scanner是JDK1.5版本引入的,java.util.Scanner
构造一个Scanner类的对象,Scanner sc = new Scanner(System.in);
1、next()方法的使用
当输入空格是结束
import java.util.Scanner;
public class Demojava {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入内容:");
String a = sc.next();
System.out.print("输出内容:");
System.out.println("a="+a);
}
}
输入内容及输出结果
1.1 输入11,然后回车
输入内容: 11
输出内容:a=11
1.2 输入11 12,然后回车
输入内容:11 12
输出内容:a=11
2、nextLine()方法的使用
当输入回车时结束
import java.util.Scanner;
public class Demojava {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入内容:");
String a = sc.next();
System.out.print("输出内容:");
System.out.println("a="+a);
String b = sc.nextLine();
System.out.println("b:"+b);
}
}
输入内容及输出结果
2.1 输入11,然后回车
输入内容:11
输出内容:a=11
b:
2.2 输入11 12,然后回车
输入内容:11 12
输出内容:a=11
b: 12
2.3 输入11 12 13,然后回车
输入内容:11 12 13
输出内容:a=11
b: 12 13
3、nextXxx()方法的使用
输入特定类型的内容
import java.util.Scanner;
public class Demojava {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入内容:");
int c = sc.nextInt();
System.out.println("c:"+c);
}
}
输入内容及输出结果
3.1 输入11,然后回车
输入内容:11
c:11
3.2 输入11 12,然后回车
输入内容:11 12
c:11
4、示例代码
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
// 创建Scanner对象,并指定输入源为标准输入流(键盘)
Scanner scanner = new Scanner(System.in);
// 读取整数
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.println("你输入的整数是:" + num);
// 读取浮点数
System.out.print("请输入一个浮点数: ");
double decimal = scanner.nextDouble();
System.out.println("你输入的浮点数是:" + decimal);
// 读取字符串
System.out.print("请输入一个字符串: ");
String str = scanner.nextLine(); // 注意:读取字符串后需要调用 nextLine() 方法来清除缓冲区中的换行符
System.out.println("你输入的字符串是:" + str);
// 关闭Scanner对象
scanner.close();
}
}
在上述示例中,我们首先导入了java.util.Scanner类。然后,在main方法中创建了一个Scanner对象,并将标准输入流作为参数传递给它。接下来,我们使用nextInt()和nextDouble()方法分别读取整数和浮点数,并打印输出结果。对于字符串的读取,由于nextInt()和nextDouble()方法只会读取数字字符,因此我们需要先调用nextLine()方法来清除缓冲区中的换行符,然后再读取字符串。最后,我们通过调用close()方法关闭了Scanner对象。