Java Scanner 使用

Scanner类

Scanner类属于java.util包,用于解析基本类型和字符串类型的输入。它可以从控制台、文件、字符串等不同的数据源读取数据,并将其解析为适当的类型。

1 读取基本类型

- 读取整数 

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();

- 读取浮点数

Scanner sc = new Scanner(System.in);
double number = sc.nextDouble();

- 读取布尔值

Scanner sc = new Scanner(System.in);
boolean bool = sc.nextBoolean();

- 读取字符串

Scanner sc = new Scanner(System.in);
String string1 = sc.next();
String string1 = sc.nextLine();
//nextLine和next的区别:nextLine可以接收空格,所以两者一般不在一起出现.

 - 读取byte型

Scanner sc = new Scanner(System.in);
byte byte1 = sc.nextByte();

- 其余略

2 判断输入是否有下一个元素

Scanner类提供了多种方法来检查输入中是否有下一个元素:

        a. hasNext():检查是否有下一个字符串

        b. hasNextInt():检查是否有下一个整数

        c. hasNextDouble():检查是否有下一个浮点数

Scanner scanner = new Scanner(System.in);
        String data1 = scanner.next();
        System.out.println(data1);
        while (scanner.hasNext()) {
            String token = scanner.next();
            if (token.equals("end")) {
                break; // 当遇到 "end" 时结束循环
            }
            System.out.println(token);
        }
3. 从文件读取数据

Scanner类可以方便地从文件中读取数据。需要注意的是,在使用Scanner类读取文件时,需要处理可能的FileNotFoundException异常。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReadExample {
    public static void main(String[] args) {
        try {
            File file = new File("input.txt");
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }

            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("File not found.");
            e.printStackTrace();
        }
    }
}
4. 使用正则表达式分割输入

Scanner类可以使用正则表达式来分割输入数据。例如,可以使用空格、逗号或其他符号作为分隔符。

import java.util.Scanner;

public class RegexExample {
    public static void main(String[] args) {
        String input = "green pink black white";
        Scanner scanner = new Scanner(input);
        scanner.useDelimiter(" ");

        while (scanner.hasNext()) {
            String fruit = scanner.next();
            System.out.println(fruit);
        }

        scanner.close();
    }
}
5. 设置输入的分隔符和编码
Scanner scanner = new Scanner(file, "UTF-8");
scanner.useDelimiter(","); // 使用逗号作为分隔符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值