Java-Scanner类详解

Java中的Scanner

是一个用于解析基本类型和字符串的文本扫描器。它位于java.util包中,通常用于从键盘、文件、网络资源等输入流中读取数据。以下是Scanner类的详细说明:

基本用法

  1. 使用类,必须创建类的实例(对象)

  2. 用类的对象来调用类中的方法就达到了使用类的目的

  3. 导入类库

    java

    import java.util.Scanner;
    
  4. 创建Scanner对象

    java

    Scanner scanner = new Scanner(System.in); // 从标准输入(键盘)读取数据
    Scanner scanner = new Scanner(new File("path/to/file.txt")); // 从文件中读取数据
    Scanner scanner = new Scanner("some string"); // 从字符串中读取数据
    
  5. 读取数据
    Scanner类提供了多种方法用于读取不同类型的数据:

    • next(): 读取下一个字符串(以空白符作为分隔符)。
    • nextInt(): 读取下一个整数。
    • nextDouble(): 读取下一个双精度浮点数。
    • nextLine(): 读取下一行文本(以换行符作为分隔符)。
    • hasNext(): 检查输入中是否还有至少一个由next()方法返回的单词。
    • hasNextInt(), hasNextDouble(), hasNextLine(): 类似,但用于检查下一个输入项是否是相应的类型。

示例

以下是一个简单的示例,演示如何从键盘读取整数和字符串:

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter an integer: ");
        int number = scanner.nextInt(); // 读取整数

        System.out.print("Enter your name: ");
        String name = scanner.nextLine(); // 读取字符串

        // 输出读取的数据
        System.out.println("You entered the integer: " + number);
        System.out.println("Your name is: " + name);

        scanner.close(); // 关闭scanner对象
    }
}

控制台输入-验证案例

使用Scanner小案例

import java.util.Scanner; //导入包
public class TestScanner{
    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        //一般情况都会在接收用户输入前打印提示语句
        System.out.println("请输入您的账号:");
            String  name = scanner.next(); //接收一个字符串
        System.out.println("请输入您的密码:");
            int password = scanner.nextInt();
        
        if(name.equals("admin") && password == 1234){
            System.out.println("恭喜您!登陆成功!");
        }
    }
}

注意:

  1. equals(方法,是字符串比较是否相等的方法
  2. 在字符串变量之间使用==是比较两个字符串对象的地址值

注意事项

  • next()nextInt()等方法的调用可能会导致Scanner对象留在输入流的开头(在空白符之后),这意味着后续调用nextLine()可能会跳过一行,因为它从nextInt()之后的空白符开始读取。
  • 当使用nextLine()方法时,如果之前使用了nextInt()next(),则需要先通过nextLine()读取空白行(即,通过调用scanner.nextLine()但不使用其返回值)。
  • 在完成数据读取后,最好关闭Scanner对象以释放相关资源,使用scanner.close()方法。

Scanner类是处理输入数据时非常有用的工具,尤其是在需要从用户或文件中读取数据时。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值