您的位置:首页 > 编程语言 > Java开发

java.util.Scanner应用浅析

2014-12-09 20:24 232 查看
java.util.Scanner

java.util.Scanner主要功能是简化文本扫描,这个类主要应用在获取控制台输入,是新手必须入门使用的一个包。

在刚开始使用Eclipse时,调试时需要获取输入String或者数字时,总是不得技巧,每次都是在Eclipse中编辑好后,放到Drjava的命令行中去直接使用。回首发现,Eclipse的Console似乎是那么不堪,但得知Scanner这个类后,才发现另一片天地(大雾。。。)

扯淡结束,回到java.util.Scanner。

经典代码,即看即会:

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

实用方法:

delimiter()

返回此 Scanner 当前正在用于匹配分隔符的 Pattern。

hasNext()

判断扫描器中当前扫描位置后是否还存在下一段。

hasNextLine()

如果在此扫描器的输入中存在另一行,则返回 true。

next()

查找并返回来自此扫描器的下一个完整标记。

nextLine()

此扫描器执行当前行,并返回跳过的输入信息。

----------------------------------------------------------------------------------------------------------------------

必须掌握的部分,show
me the code!


1.修改分隔符:

Scanner useDelimiter(String pattern)


import java.util.* ;
public class UseScanner{
public static void main(String args[]){
Scanner scan = new Scanner(System.in) ; // 从键盘接收数据
System.out.print("输入数据:") ;
scan.useDelimiter("\n") ;
String str = scan.next() ;  // 接收数据
System.out.println("输入的数据为:" + str) ;
}
};
2.Scanner
类也可以直接返回整数或者小数


整数:

判断是否是整数:public
boolean hasNextInt(),判断是否是整数,如果是则返回true

接收数据 :public
int nextInt()

小数

判断是否是小数:public
boolean hasNextFloat()

接收数据:public
float nextFloat()

import java.util.* ;
public class UseScanner{
public static void main(String args[]){
Scanner scan = new Scanner(System.in) ; // 从键盘接收数据
int i = 0 ;
float f = 0.0f ;
System.out.print("输入整数:") ;
if(scan.hasNextInt()){  // 判断输入的是否是整数
i = scan.nextInt() ;    // 接收整数
System.out.println("整数数据:" + i) ;
}else{
System.out.println("输入的不是整数!") ;
}
System.out.print("输入小数:") ;
if(scan.hasNextFloat()){    // 判断输入的是否是小数
f = scan.nextFloat() ;  // 接收小数
System.out.println("小数数据:" + f) ;
}else{
System.out.println("输入的不是小数!") ;
}
}
};


3.从文件中读取信息

使用scanner
直接读取文件内容


假设:d:\test.txt
文件(有内容)

import java.util.* ;
import java.text.* ;
import java.io.* ;
public class ScannerDemo{
public static void main(String args[]){
File f = new File("D:" + File.separator + "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) ;
}
};
现在的文件内容确实读取进来,但是此程序依然不完美。以上只能读取出第一行数据,因为存在换行,所以认为读完了。

import java.util.* ;
import java.text.* ;
import java.io.* ;
public class ScannerDemo05{
public static void main(String args[]){
File f = new File("D:" + File.separator + "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) ;
}
};
-------------------------------------------------------------------------------------------------------

总结:

1、掌握Scanner 类作用:方便的读取数据

2、在读取操作的时候一定要注意分隔符的影响

附注:部分代码参考@中国风2012 博客的内容,感谢您的知识提炼


韩世雷

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: