当前位置: 首页 > 后端技术 > Java

说说Java的Scanner类

时间:2023-04-01 16:44:26 Java

java.util.Scanner是Java5的一个新特性,我们可以使用Scanner类来获取用户输入。以下是创建Scanner对象的基本语法:Scanners=newScanner(System.in);下面我们演示最简单的数据输入,通过Scanner类的next()和nextLine()方法获取输入字符串。在阅读之前,我们一般需要使用hasNext和hasNextLine来判断是否有输入数据:使用next方法:ScannerDemo.java文件代码:importjava.util.Scanner;publicclassScannerDemo{publicstaticvoidmain(String[]args){扫描仪扫描=newScanner(System.in);//从键盘接收数据//以下一模式接收字符串System.out.println("Receiveinnextmode:");//判断是否有输入if(scan.hasNext()){Stringstr1=scan.next();System.out.println("输入数据为:"+str1);}scan.close();}}执行以上程序,输出结果为:$javacScannerDemo.java$javaScannerDemonext接收方式:runoobcom输入数据为:runoob可以看到没有输出com字符串,然后我们看nextLine。使用nextLine方法:ScannerDemo.java文件代码:importjava.util.Scanner;publicclassScannerDemo{publicstaticvoidmain(String[]args){扫描仪扫描=newScanner(System.in);//从键盘接收数据//NextLine方式接收字符串System.out.println("nextLine方式接收:");//判断是否有输入if(scan.hasNextLine()){Stringstr2=scan.nextLine();System.out.println("输入数据为:"+str2);}scan.close();}}执行上述程序,输出结果为:$javacScannerDemo。到com字符串输出。next()和nextLine()next()的区别:1.只有读取到有效字符后才能结束输入。2.next()方法会自动去除输入有效字符前遇到的空格。3.只有输入有效字符后,后面输入的空格才会作为分隔符或结束符。next()无法获取带空格的字符串。nextLine():1、使用Enter作为结束字符,也就是说nextLine()方法返回回车前的所有字符。2.可以获得空白。如果要输入int或者float类型的数据,在Scanner类中也是支持的,但是在输入之前,最好先使用hasNextXxx()方法进行验证,然后使用nextXxx()读取:ScannerDemo.java文件代码:importjava.实用程序扫描仪;publicclassScannerDemo{publicstaticvoidmain(String[]args){扫描仪扫描=newScanner(System.in);//从键盘接收数据inti=0;浮动f=0.0f;System.out.print("请输入一个整数:");if(scan.hasNextInt()){//判断输入是否为整数i=scan.nextInt();//接收一个整数System.out.println("Integerdata:"+i);}else{//输入错误信息System.out.println("Theinputisnotaninteger!");}System.out.print("请输入一个小数:");if(scan.hasNextFloat()){//判断输入是否为小数f=scan.nextFloat();//接收十进制System.out.println("十进制数据:"+f);}else{//输入错误信息System.out.println("Theinputisnotadecimal!");}scan.close();}}执行以上程序输出为:$javacScannerDemo.java$javaScannerDemo输入整数:12整数数据:12输入小数:1.2小数数据:1.2在下面的例子中,我们可以输入多个数字,并计算它们的和和平均值,每个inputanumber回车确认,输入非数字结束输入并输出执行结果:ScannerDemo.java文件代码:importjava.util.Scanner;classRunoobTest{publicstaticvoidmain(String[]args){System.out.println("请输入数字:");扫描仪扫描=新扫描仪(System.in);双和=0;诠释米=0;while(scan.hasNextDouble()){doublex=scan.nextDouble();m=m+1;总和=总和+x;}System.out.println(m+"数字的总和是"+sum);System.out.println(m+"数字的平均值是"+(sum/m));scan.close();}}执行以上程序,输出结果为(输入非数字结束输入):$javacScannerDemo.java$javaScannerDemo请输入一个数字:12231521.4end4个数字的和是71.44个数的平均值值为17.85