装饰类Scanner实例浅析
来源:互联网 发布:java me模拟器 编辑:程序博客网 时间:2024/06/16 00:15
JDK1.5之后JAVA提供专门的输入数据类,可以完成BufferedReader类的功能,也可以方便的对输入数据进行验证,此类存放在java.util包中。
public Scanner(File)throws FileNotFoundExeption <从文件中接收内容>
(InputStream)
Boolean Scanner.hasNext(Pattern) <判断是否符合指定正则标准>
hasNextInt() 整数
hasNextFloat() 小数
String .next() <接收内容>
.next(Pattern)<接收内容进行验证>
int .nextInt() <接收数字>
float .nextFloat()public class Main10 {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);}}
以上的输入数据代码实际上是存在问题的,如果输入数据间存在空格,则会以空格为分隔符,如果想要输入空格,必须修改分隔符,将分隔符变为“\n”。
Scannerscan=new Scanner(System.in);//从键盘接收数据
scan.useDelimiter("\n");
Stringstr =scan.next();
返回整数或是小数
有以下方法:
接收整数:
判断是否整数:public Boolean hasNextInt();是整数返回true
接收数据:public int nextInt()
接收小数:
判断是否是小数:public Boolean hasNextFloat();
接收数据:public float nextFloat()
public class ScannerDemo03{public static void main(String args[]){Scanner scan = new Scanner(System.in);int i = 0;float f = 0.0f;System.out.print("input integer:");if(scan.hasNextInt()){i = scan.nextInt();System.out.println("integer data:"+i);}else{System.out.println("input not integer!");scan.next();}System.out.print("input float");if(scan.hasNextFloat()){f = scan.nextFloat();System.out.println("float data:"+f);}else{System.out.println("input not float");}}}
Scanner无法接收日期型数据,但是在接收时依然可以使用Scanner类中提供的方法进行验证:
验证:public String hasNext(Pattern pattern)
接收:public String next(String pattern)
public class ScannerDemo01{public static void main(String args[]){Scanner scan = new Scanner(System.in);String str = null;Date date = null;System.out.println("input date(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("input format is error!");}System.out.println(date);}}
还可以直接从文件中读取信息。
public class ScannerDemo01 {public static void main(String args[]) {File f = new File("F:\\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("file contents are:" + str);}}
- 装饰类Scanner实例浅析
- 装饰类PrintStream实例浅析
- Scanner入门实例
- java.util.Scanner应用浅析
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- Scanner 类
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- 装饰模式浅析(1)
- 浅析Python装饰器
- 浅析Python装饰器
- 装饰模式浅析
- 昆石VOS3000_2.1.3.2安装脚本
- java高精度加法 hdu1002
- i++与++i的效率比较
- JPA与JDBC的区别
- SQL Server不能直接修改表
- 装饰类Scanner实例浅析
- win7 64位 系统安装mysql_5.7.19(msvce120 or DirectXRepair35.zip修复)
- MPEG4与H.264的区别(音视频规范总结)
- Java获取外网IP
- Javadoc注释的用法
- JavaScript模拟实现进度条
- 第一章——一个简单的iOS应用程序
- webhook 挂钩自动部署
- 常用正则表达式大全