JAVA Scanner 的一些用法注意事项
2017-12-25 17:01
555 查看
scanner 的几种常见用法
scanner 方法提供了一种方便从控制台读取数据的方法。使用格式为 Scanner in = new Scanner(System.in); 之后可以对于in做一系列操作。如:
读取下一字符串 next()
读取一整行数据 nextLine()
返回一个布尔值,用于判断下一行是否数据 hasNext()
以特定格式读取数据(正则) useDelimiter(“format”)
读取特定数据:nextxx() nextInt(), nextFloat()等
程序测试
测试代码
此处实现将scanner类的一些常见函数使用进行展示:package testScanner; import java.util.Scanner; public class testScanner { public static void main(String[] args){ Scanner in = new Scanner(System.in); String aString; aString = in.next();//读取单个字符串,遇空格终止读取。使用nextline则可以读取整行 System.out.println("read result by using .next: " + aString); System.out.println("the remant part(staying in the buffer): " + in.next()); //testFunction(); in.useDelimiter("[^a-zA-Z]+");//使用正则表达式规范读取格式 //System.out.println(in.delimiter()); System.out.println("Only alphabet is allowed:"); while(in.hasNext()){ System.out.println(in.next()); } in.close(); } public static void testFunction(){ Scanner test = new Scanner(System.in); System.out.println("in the test function"); test.close(); } }
程序运行结果
使用过程中的一些注意事项
(Exception in thread “main” java.util.NoSuchElementExceptionation java.util.Scanner.throwFor(Unknown Source)at java.util.Scanner.next(Unknown Source错误的产生与解决方案)
依然是上面那一段程序如果调用testFunction函数的话,进过测试可以发现在读取正则部分时,无法实现从控制台输入。
这是因为在函数中,声明了一个scanner对象,并且调用了close方法。这可能是由于所有的scanner类共享一个输入流,当其中一个调用关闭函数的时候,所有的scanner对象都关闭了。
所以建议大家在编写程序时,在不同地方使用scanner类的时候,注意只需调用一次close方法,并且要注意在此后无任何读控制台操作。错误的用法轻则会导致无法读入。重则会使程序报错。大家有时遇到报错信息为:
问题大多是由于这种错误操作引起的,此时只需确保只在最后调用一次close方法就可消除此错误信息。
相关文章推荐
- JAVA Scanner 用法注意事项(scanner 使用错误:Exception in thread "main" java.util.NoSuchElementExceptionation )
- 【JavaWeb-19】Struts2总结案例中的一些实战知识小点和注意事项
- java中if与switch-case语句的使用及一些注意事项
- java中使用switch-case的用法及注意事项超全总结
- Java中一些基本的数学类操作函数及注意事项
- Java中使用switch-case的用法及注意事项
- 【java】用maven创建java web工程的一些注意事项
- 关于JAVA数组的几点注意事项与一些低级错误
- android上一些方法的区别和用法的注意事项
- java矩阵运算包ujmp中的一些小示例和注意事项
- Java中split()函数的用法及一些注意细节
- Eclipse中查看Java源代码的方法及一些注意事项
- java矩阵运算包ujmp中的一些小示例和注意事项
- java中使用switch-case的用法及注意事项超全总结
- android上一些方法的区别和用法的注意事项
- Java基础——switch的用法及注意事项
- Java 中this的用法和静态方法的注意事项
- 《黑马程序员》java笔记->【02】关于Static静态方法的一些注意事项
- android上一些方法的区别和用法的注意事项
- typedef的一些用法及注意事项