我们一般使用System.out.println("") 向控制台输出数据,如果要从控制台输入数据,需用到Scanner类
Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。
默认情况下,Scanner以空格和换行(空格键、Tab键、Enter键)作为分隔符。
一、使用Scanner读取整数
import java.util.Scanner;
public class HelloScanner {
public static void main(String[] args) {
int sum;
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数: " a);
int b = s.nextInt();
System.out.println("第二个整数:" b);
sum = a b;
System.out.println("求和:" sum);
}
}
二、使用scanner读取浮点数
import java.util.Scanner;
public class HelloScanner {
public static void main(String[] args) {
//scanner读取整数
int sum;
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数: " a);
int b = s.nextInt();
System.out.println("第二个整数:" b);
sum = a b;
System.out.println("求和:" sum);
//scanner读取浮点数
Scanner sf = new Scanner(System.in);
float c = sf.nextFloat();
System.out.println("读取的浮点数的值是:" c);
}
}
三、使用scanner读取字符串
//scanner读取字符串
Scanner ss = new Scanner(System.in);
String d = ss.nextLine();
System.out.println("读取的字符串是:" d);
四、读取整数后读字符串
如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:" ",因为nextInt仅仅读取数字信息,而不会读取回车换行" ".
所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
//scanner读取整数后读取字符串
Scanner sn = new Scanner(System.in);
int e = sn.nextInt();
System.out.println("读取整数是:" e);
String f = sn.nextLine();
String g = sn.nextLine();
System.out.println("读取字符串是:" f);
System.out.println("读取字符串是:" g);
》》最终代码
import java.util.Scanner;
public class HelloScanner {
public static void main(String[] args) {
//scanner读取整数
System.out.println("》》》scanner读取整数《《《");
int sum;
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数: " a);
int b = s.nextInt();
System.out.println("第二个整数:" b);
sum = a b;
System.out.println("求和:" sum);
//scanner读取浮点数
System.out.println("》》》scanner读取浮点数《《《");
Scanner sf = new Scanner(System.in);
float c = sf.nextFloat();
System.out.println("读取的浮点数的值是:" c);
//scanner读取字符串
System.out.println("》》》scanner读取字符串《《《");
Scanner ss = new Scanner(System.in);
String d = ss.nextLine();
System.out.println("读取的字符串是:" d);
//scanner读取整数后读取字符串
System.out.println("》》》scanner读取整数后读取字符串《《《");
Scanner sn = new Scanner(System.in);
int e = sn.nextInt();
System.out.println("读取整数是:" e);
String f = sn.nextLine();
String g = sn.nextLine();
System.out.println("读取字符串是:" f);
System.out.println("读取字符串是:" g);
}
}
这个类还是比较有用的,大家也可以自己测试玩一下~