登录 |  注册
首页 >  编程入门 >  Java基础教程·入门课堂笔记 >  JavaScanner类

JavaScanner类

获取控制台输入的字符串

java.util.Scanner是Java5的新特征,我们可以通过 Scanner 类来获取用户的输入。

下面是创建 Scanner 对象的基本语法:

 Scanner s = new Scanner(System.in);

通过 Scanner 类的 next() nextLine() 方法获取输入的字符串,在读取前我们通常需要 使用 hasNexthasNextLine 判断是否还有输入的数据:


使用 next 方法:

import java.util.Scanner; 

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in); 
// 从键盘接收数据  
	//next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if(scan.hasNext()){   
        	String str1 = scan.next();
        	System.out.println("输入的数据为:"+str1);  
        }  
    }  
}

    执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
youj com
输入的数据为:youj

    可以看到 com 字符串并未输出,接下来我们看 nextLine。


使用 nextLine 方法:
import java.util.Scanner; 

public class ScannerDemo {  
   public static void main(String[] args) {  
       Scanner scan = new Scanner(System.in);
// 从键盘接收数据  
//nextLine方式接收字符串
       System.out.println("nextLine方式接收:");
       // 判断是否还有输入
       if(scan.hasNextLine()){  
        String str2 = scan.nextLine();
        System.out.println("输入的数据为:"+str2);  
       }  

   }  
}

执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
yukx com
输入的数据为:yukx com

可以看到 yukx com 字符串输出。


next()与nextLine()区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。

  • 2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

  • next()不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

  • 2、可以获得空白。

如果要输入int或float类型的数据,在Scanner类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

import java.util.Scanner;  

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in);  
		// 从键盘接收数据  
        int i = 0 ;  
        float f = 0.0f ;  
        System.out.print("输入整数:");  
        if(scan.hasNextInt()){                 
			// 判断输入的是否是整数  
            i = scan.nextInt() ;                
			// 接收整数  
            System.out.println("整数数据:" + i) ;  
        }else{                                 
			// 输入错误的信息  
            System.out.println("输入的不是整数!") ;  
        }  
        System.out.print("输入小数:");  
        if(scan.hasNextFloat()){              
			// 判断输入的是否是小数  
            f = scan.nextFloat() ;             
			// 接收小数  
            System.out.println("小数数据:" + f) ;  
        }else{                                
			// 输入错误的信息  
            System.out.println("输入的不是小数!") ;  
        }  
    }  
}

  执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2

    以下实例我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

import java.util.Scanner; 

class ScannerDemo   
{  
    public static void main(String[] args)   
    {  
        Scanner scan = new Scanner(System.in);  
  
        double sum = 0;  
        int m = 0;  
  
        while(scan.hasNextDouble())  
        {  
            double x = scan.nextDouble();  
            m = m + 1;  
            sum = sum + x;  
        }  
  
        System.out.println(m+"个数的和为"+sum);  
        System.out.println(m+"个数的平均值是"+(sum/m));  
    }  
}

    执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
12
23
15
21.4
end
4个数的和为71.4
4个数的平均值是17.85

  

上一篇: Java流、文件和IO
下一篇: Java异常处理
推荐文章
  • 在HTML中,如果你想让一个输入框(input元素)不可编辑,你可以通过设置其readonly属性来实现。示例如下:input type="text" value="此处内容不可编辑" readonly在上述代码中,readonly属性使得用户无法修改输入框中的内容。另外,如果你希望输入框完全不可交
  • ASP.NET教程ASP.NET又称为ASP+,基于.NETFramework的Web开发平台,是微软公司推出的新一代脚本语言。ASP.NET是一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不一样的开发模式:WebPages(Web页面)、
  • C# 判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。下面是大多数编程语言中典型的判断结构的通常形式:判断语句C#提供了以下类型的判断语句。点击链接查看每个语句的细节。语句描述if语句一个 if语句 由一个布尔表达式后跟
  • C#循环有的时候,可能需要多次执行同一块代码。通常情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的通常形式:循环类型C#提供了以下几种循环类型
  • C#数组(Array)数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,一般认为数组是一个同一类型变量的集合。声明数组变量并不是声明number0、number1、...、number99一个个单独的变量,而是声明一个就像numbers这样的变量,然后使用numbers[0]
  • ASP.NET是一个由微软公司开发的用于构建Web应用程序的框架,它是.NETFramework的一部分。它提供了一种模型-视图-控制器(MVC)架构、Web表单以及最新的ASP.NETCore中的RazorPages等多种开发模式,可以用来创建动态网页和Web服务。以下是一些基础的ASP.NET编
学习大纲