java Scanner类常用方法

时间:2022-12-23 03:37:21

首先要引入包import java.util.Scanner;

它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
Scanner reader=new Scanner(System.in); 
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型  
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot() 
上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入
12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文
本行并且回车,该方法得到一个String类型的数据。

例如,以下代码使用户能够从 System.in 中读取一个数:

 Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

再例如:

import java.util.Scanner;
public class Example
{
public static void main(String args[])
{
System.out.println("请输入若干个数,每输入一个数用回车确认");
System.out.println("最后输入一个非数字结束输入操作");
Scanner reader=new Scanner(System.in);
double sum=0;
int m=0;
while(reader.hasNextDouble())
{
double x=reader.nextDouble();
m=m+1;
sum=sum+x;
}
System.out.printf("%d个数的和为%f\n",m,sum);
System.out.printf("%d个数的平均值是%f\n",m,sum/m);
}
}

常用方法

java Scanner类常用方法
java Scanner类常用方法

java Scanner类常用方法

再举个例子:
逐行扫描文件,并逐行输出

Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
System.out.println(cin.next());
}

当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。

/** 
* 扫描控制台输入
*
* @author leizhimin 2009-7-24 11:24:47
*/

public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")) break;
System.out.println(">>>" + line);
}
}
}