java利用Scanner获取键盘输入
在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢...
java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数...
Scanner是一个基于正则表达式的文本扫描器~~可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。(摘自《疯狂java讲义》李刚)
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import java.util.Scanner; /** * Scanner的简单示例 * */ public class TestScanner { public static void main(String[] args) { //创建Scanner对象 //System.in表示标准化输出,也就是键盘输出 Scanner sc = new Scanner(System.in); //利用hasNextXXX()判断是否还有下一输入项 while (sc.hasNext()) { //利用nextXXX()方法输出内容 String str = sc.next(); System.out.println(str); } } } |
结果就是:你在控制台输入什么内容,点击回车后,下面就会输出同样的内容,如果你输入的时候点击了回车或者Tab键,那么输出的内容就会在那个地方换行~~
结果如图:
![java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球](http://img1.ph.126.net/jWGABkmQFhZC2KvcwaQenw==/6632218954373130247.png)
可以利用Scanner在java程序需要参数的时候输入参数
代码示例:TestScannerIn.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.Scanner; /** * 使用Scanner在程序需要的时候输入参数 * */ public class TestScannerIn { public static void main(String[] args) { /** * 写一个输出个人信息的小例子 * */ Scanner sc = new Scanner(System.in); sc.useDelimiter( "/n" ); System.out.println( "欢迎来到冲出地球的博客,我是冲出地球^_^" ); System.out.println( "请问你叫什么名字呢?" ); String name = sc.nextLine(); System.out.println( "请问你来自哪里呢?" ); String area = sc.nextLine(); System.out.println( "好的,你来自" + area + ",那么,你们那有什么美食吗?" ); String food = sc.nextLine(); System.out.println( "好的,那么我来复述一下你的信息:" ); System.out.println( "你叫" + name + ",来自于:" + area); System.out.println( "你们那最好吃的东西是:" + food); System.out.println( "对吧~~" ); } } |
结果:
![java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球](http://img2.ph.126.net/La31LMNF2l7sb7lfISc0Ww==/6632112301745229521.png)
Scanner除了可以获取键盘输入外,也可以获取文件中的内容,将文件中的内容一行一行的输入出来
如果文档在项目中(如图)
![java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球](http://img0.ph.126.net/JtAHN4JL2w51v-YNR52tFQ==/6631786846306519128.png)
示例代码:TestScannerRead.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; /** * 利用Scanner读取项目中的文档 * */ public class TestScannerRead { public static void main(String[] args){ Scanner sc; try { //读取项目中的文档 sc = new Scanner( new File( "ScannerTest.txt" )); System.out.println( "项目中的文本内容是:" ); //通过判断是否有下一行来输出文档内容 while (sc.hasNextLine()) { System.out.println(sc.nextLine()); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
结果:
![java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球](http://img2.ph.126.net/RIkeTULcmeHC3iHQKPi_zQ==/6631507570353052991.png)
示例代码:TestScannerRead.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; /** * 利用Scanner读取本地的文件 * */ public class TestScannerRead { public static void main(String[] args){ FileInputStream fis; try { //利用文件上传功能 fis = new FileInputStream( "D:\\text\\ScannerTest.txt" ); //设置文件编码 Scanner sc = new Scanner(fis, "UTF-8" ); System.out.println( "本地文件内容:" ); //输出文件内容 while (sc.hasNextLine()) { System.out.println(sc.nextLine()); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
结果:
![java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球](http://img0.ph.126.net/h2a1yZy3dsgXYnCuF2Uspg==/6632096908582443297.png)
鉴于本人水平有限,文章中难免有疏漏...欢迎各位批评指正
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步