概述
一、Scanner简介
Scanner类可以完成BufferedReader类的功能,也可以方便的对输入数据进行验证,存在于java.util包中。
二、常用方法:
a) public boolean hasNext(Patternpattern)——判断输入的数据是否符合指定的正则
b) public boolean hasNexInt()——判断输入的是否是整数
c) public boolean hasNextFloat()——判断输入的是否是小数
d) public String next()——接收内容
e) public String next(Patternpattern)——接收内容,进行正则验证
f) public int nextInt( ) ——接收数字
g) public float nextFloat( )——接收小数
h) public ScanneruseDelimiter(String pattern )——设置读取的分隔符
三、示例
示例一:
用Scanner接收键盘输入数据:
public class Test {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in); // 从键盘接收数据
System.out.print("输入数据:");
String str = sc.next(); // 接收数据
System.out.println("输入的数据为:" + str);
}
}
注意:以上输入数据代码实际上是存在问题的,如果输入数据之间存在了空格,则会以空格为分割符,如果要想输入空格的话,则就必须修改分割符,将分割符变为“n”
修改分割符:
public class Test {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in); // 从键盘接收数据
System.out.print("输入数据:");
sc.useDelimiter("n") ; //设置读取的分割符
String str = sc.next(); // 接收数据
System.out.println("输入的数据为:" + str);
}
}
示例二:
通过Scanner接收整数或小数,并校验。
public class Test {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in); // 从键盘接收数据
int i = 0 ;
float f= 0.0f;
System.out.println("输入整数:");
if(sc.hasNextInt()){//判断输入的是否是整数
i= sc.nextInt();//接收数据
System.out.println("整数是:"+i);
}else{
System.out.println("输入的不是整数");
}
System.out.println("输入小数");
if(sc.hasNextFloat()){//判断输入的是否为小数
f= sc.nextFloat();//接收数据
System.out.println("小数数据:"+f);
}else{
System.out.println("输入的不是小数");
}
}
}
注意:Scanner类对于日期型的数据却无法接收。
如果想接收Date类型的数据,则只能通过字符串转型。
验证:publicString hasNext(Pattern)
接收:publicString next(String pattern)
public class Test {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in); // 从键盘接收数据
String str = null;
Date date = null;
System.out.print("输入日期(yyyy-MM-dd):");
if (scan.hasNext("^\d{4}-\d{2}-\d{2}$")) { // 判断
str = scan.next("^\d{4}-\d{2}-\d{2}$"); // 接收
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
} catch (Exception e) {
}
} else {
System.out.println("输入的日期格式错误!");
return;
}
System.out.println(date);
}
}
示例三:从文件中读取信息
public class Test {
public static void main(String[] args) throws IOException {
File f = new File("E:\test.txt"); // 指定操作文件
Scanner scan = null;
try {
scan = new Scanner(f); // 从键盘接收数据
} catch (Exception e) {
}
String str = null;
if (scan.hasNext()) {
str = scan.next();
}
System.out.println("文件内容为:" + str);
}
}
注意:此程序只能读取第一行数据,因为存在换行,所以读取一行数据,就认为读完了。
修改代码(考虑换行的功能):
public class Test {
public static void main(String[] args) throws IOException {
File f = new File("E:\test.txt"); // 指定操作文件
Scanner scan = null;
try {
scan = new Scanner(f); // 从键盘接收数据
} catch (Exception e) {
}
StringBuffer str = new StringBuffer();
while (scan.hasNext()) {
str.append(scan.next()).append('n'); // 取数据
}
System.out.println("文件内容为:" + str);
}
}
最后
以上就是娇气斑马为你收集整理的Java_IO_Scanner类一、Scanner简介二、常用方法:三、示例的全部内容,希望文章能够帮你解决Java_IO_Scanner类一、Scanner简介二、常用方法:三、示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复