java Scanner类

来源:互联网 发布:淘宝买化妆品可靠吗 编辑:程序博客网 时间:2024/06/01 09:55

首先,java.util.Scanner 作为Java5及之后的新特征,其常用于控制台输入,在此我分享一点个人的相关理解。

想要通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
Scanner scan = new Scanner(System.in);


注:请认真阅读下面的解释,再对比后面代码食用效果更佳


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

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

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

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

delimiter()  返回Scanner当前正用于匹配分隔符的pattern

nextInt()读取整数,通过hasnextInt进行判断,同nextDouble(),nextFloat()等用法相同。


咱们再来看一个实例:

<注意前面的注释符>

代码注释中特别解释了next()与nextline()第一个区别,结合上面各函数的定义更容易理解。

public class ScannerDemo {        public static void main(String []args){        Scanner scan = new Scanner(System.in);        System.out.println("请输入一个整数:");        while(scan.hasNextInt()){            int num = scan.nextInt();            System.out.println("请输入一个字符串:");            String str = scan.next();                //   String str = scan.nextLine();                 //   区别于next(),如果此处使用nextline(),则str会直接接收一个换行符。                //   因为上方的nextInt只是读取本行的int数据,而并不将“行指针”指向下一行,所以nextline只能接收到数字输入完成后的换行符。            System.out.println("number="+num+",string="+str);            System.out.println(scan.delimiter());             scan.close();            break;        }    }}运行结果如下:请输入一个整数:1325请输入一个字符串:smilenumber=1325,string=smile\p{javaWhitespace}+


我们再来看看next()与nextline()第二个区别:

public class ScannerDemo {        public static void main(String []args){        Scanner scan = new Scanner(System.in);        System.out.println("请输入一个字符串:");        while(scan.hasNext()){            String str0 = scan.nextLine(); //先是nextLIne            System.out.println("请再次输入一个字符串:");            String str1 = scan.next();     //再是next()            System.out.println("str0 = "+str0+"   ;   str1 = "+str1);            scan.close();            break;        }    }}      运行结果如下:请输入一个字符串:smile dogge and happy catty请再次输入一个字符串:you are my sunshinestr0 = smile dogge and happy catty   ;   str1 = you

即:

next()接收字符串时,以空格或者换行符作为结尾

而nextLine可以接受空格作为字符串的一部分,只以换行符作为结尾。


<其实定义也说清了,next()是返回一个完整的string, 而nextLine()是扫描当前行,并返回扫描过的当前行信息>


通过上面的实例及代码注释,配合下面的函数讲解,我们可以认识到Scanner常用函数的使用方法。

多多练习才是正道,开始敲代码吧~







原创粉丝点击