javaIO——Scanner 偏执的太偏执、 2022-05-28 13:29 294阅读 0赞 本节目标: 1.掌握Scanner类的作用 2.使用Scanner接收输入的数据 # Scanner # 作为专门的数据输入类,此类可以完成BufferedReader类的功能,也可以对输入的数据进行验证,此类存放在java.util包中。 ![20180406213202316][] 使用Scanner类接收数据: ## 1.基本数据输入 ## public class ScannerDemo \{ public static void main(String\[\] args) \{ Scanner scan = new Scanner(System.in); System.out.println("请输入数据:"); String str = scan.next();//接收数据 System.out.println("输入的数据为:" + str); \} \} 比直接使用BufferedReader更方便,但是,以前程序存在问题!如果输入的数据之间存在空格,则会以空格作为分隔符,如果要想使用空格,必须修改分隔符,将分隔符改为“\\n”。 public class ScannerDemo \{ public static void main(String\[\] args) \{ Scanner scan = new Scanner(System.in); System.out.println("请输入数据:"); **scan.useDelimiter("\\n");** String str = scan.next();//接收数据 System.out.println("输入的数据为:" + str); \} \} 以上程序都是以字符串返回,Scanner也可以方便的返回整数或小数。 接收整数: |-判断是否为整数:public boolean hasNextInt(),判断是否为整数,如果是,则返回true |-接收数据:public int nestInt() 接收小数: |-判断是否为小数:public boolean hasNextFloat(),判断是否为小数,如果是,则返回true |-接收数据:public int nestFloat() public class ScannerDemo2 \{ public static void main(String\[\] args) \{ Scanner scan = new Scanner(System.in); int i = 0; float f = 0.0f; System.out.println("请输入整数:"); if (scan.hasNextInt()) \{ i = scan.nextInt(); System.out.println("输入的整数为:" + i); \}else\{ System.out.println("输入的不是整数!"); \} System.out.println("请输入小数:"); if (scan.hasNextFloat()) \{ f = scan.nextFloat(); System.out.println("输入的小数为:" + f); \}else\{ System.out.println("输入的不是小数!"); \} \} \} ## 2.日期格式输入 ## Scanner对日期类型数据无法接收,只能通过字符串转型。 |-验证:`hasNext(String pattern)` |-接收:`next(Pattern pattern)` public class ScannerDemo3 \{ public static void main(String\[\] args) throws ParseException \{ Scanner scan = new Scanner(System.in); String str; Date date; System.out.println("请输入日期(yyyy-MM-dd)"); if (scan.hasNext("^\\\\d\{4\}-\\\\d\{2\}-\\\\d\{2\}$")) \{ str = scan.next("^\\\\d\{4\}-\\\\d\{2\}-\\\\d\{2\}$"); date = new SimpleDateFormat("yyyy-MM-dd").parse(str); System.out.println(date); \}else\{ System.out.println("输入的日期格式错误!"); \} \} \} ## 3.文件中数据输入 ## public class ScannerDemo4 \{ public static void main(String\[\] args) throws FileNotFoundException \{ File f = new File("f:" + File.separator + "test2.txt"); Scanner scan = new Scanner(f); String str = null; if (scan.hasNext()) \{ str = scan.next(); \} System.out.println("文件内容为:" + str); \} \} 以上程序只能读取文件中的第一行数据,如果存在换行, public class ScannerDemo4 \{ public static void main(String\[\] args) throws FileNotFoundException \{ File f = new File("f:" + File.separator + "test2.txt"); Scanner scan = new Scanner(f); StringBuffer str = new StringBuffer(); while (scan.hasNext()) \{ str.append(scan.next()).append("\\n"); \} System.out.println("文件内容为:" + str); \} \} # 总结: # 1.Scanner类方便读取数据 2.注意分隔符的影响。 [20180406213202316]: /images/20220528/e3a67d900504473eaded1f07ae10b9b4.png
还没有评论,来说两句吧...