码迷,mamicode.com
首页 > 编程语言 > 详细

Java(10):用户交互Scanner

时间:2021-03-01 13:42:30      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:扫描器   out   读取   数据   一个   去掉   通过   import   scanner   

Scanner

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

基本语法:

Scanner s = new Scanner(System.in);

通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {

        // 创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用next方式接收:");

        // 判断用户是否有输入字符串
        if (scanner.hasNext()){
            // 使用next方式接收
            String str = scanner.next();
            System.out.println("输入的内容为:" + str);
        }

        // 凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯用完就关掉
        scanner.close();
    }

}

next()和nextLine()的区别:

  • next():

    1. 一定要读取到有效字符后才可以结束输入。
    2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    3. 只有输入有效字符后才将其后输入的空白作为分割符或者结束符。
    4. 综上所述,即next()方法不能得到带有空格的字符串。
  • nextLine():

    1. 以Enter作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
    2. 可以获得空白。

其他has与next方法

// 创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
double sum = 0.0;
int num = 0;

System.out.println("请输入数字:");

while (scanner.hasNextDouble()){
    double x = scanner.nextDouble();
    sum = x + sum;
    num ++;
}

System.out.println("所有数字的和为:" + sum);
System.out.println("共有" + num + "个数字");

// 凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯用完就关掉
scanner.close();

Java(10):用户交互Scanner

标签:扫描器   out   读取   数据   一个   去掉   通过   import   scanner   

原文地址:https://www.cnblogs.com/zhangtu/p/14458838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!