亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

掌握 Java Scanner:读取文本、数字与复杂类型的综合指南

掌握 Java Scanner

Scanner 类位于 java.util,可从流、文件、字符串和控制台捕获输入。下面演示核心用法模式。


示例 1:读取整行文本

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter your name: ");
        String name = input.nextLine();
        System.out.println("My name is " + name);
        input.close();
    }
}

输出

Enter your name: Kelvin
My name is Kelvin

Scanner input = new Scanner(System.in); 构造监听键盘输入的 Scanner。nextLine() 消费整行直到换行符。


导入 Scanner 类

使用前导入:

import java.util.Scanner;

包导入详见 Java Packages。


创建 Scanner 对象

根据输入源实例化:

// 从输入流(如 System.in)
Scanner sc1 = new Scanner(InputStream input);
// 从文件
Scanner sc2 = new Scanner(File file);
// 从字符串
Scanner sc3 = new Scanner(String str);

Scanner 关键输入方法

Scanner 提供多种方法读取不同数据类型,速查表:

方法描述
nextInt()读 int
nextFloat()读 float
nextBoolean()读 boolean
nextLine()读整行文本
next()读单词(至空白符)
nextByte()读 byte
nextDouble()读 double
nextShort()读 short
nextLong()读 long

示例 2:使用 nextInt()

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter an integer: ");
        int data1 = input.nextInt();
        System.out.println("Using nextInt(): " + data1);
        input.close();
    }
}

输出

Enter an integer: 22
Using nextInt(): 22

示例 3:使用 nextDouble()

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter Double value: ");
        double value = input.nextDouble();
        System.out.println("Using nextDouble(): " + value);
        input.close();
    }
}

输出

Enter Double value: 33.33
Using nextDouble(): 33.33

示例 4:使用 next()

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter your name: ");
        String value = input.next();
        System.out.println("Using next(): " + value);
        input.close();
    }
}

输出

Enter your name: Jonny Walker
Using next(): Jonny

next() 在首个空白符停止,仅捕获名。


示例 5:使用 nextLine()

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter your name: ");
        String value = input.nextLine();
        System.out.println("Using nextLine(): " + value);
        input.close();
    }
}

输出

Enter your name: Jonny Walker
Using nextLine(): Jonny Walker

与 next() 不同,nextLine() 捕获整行含空格,直到换行符。

推荐阅读: Java Scanner 跳过 nextLine() 问题


Scanner 处理 BigInteger 和 BigDecimal

高精度数字支持:

示例:读取 BigInteger 和 BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a big integer: ");
        BigInteger value1 = input.nextBigInteger();
        System.out.println("Using nextBigInteger(): " + value1);
        System.out.print("Enter a big decimal: ");
        BigDecimal value2 = input.nextBigDecimal();
        System.out.println("Using nextBigDecimal(): " + value2);
        input.close();
    }
}

输出

Enter a big integer: 987654321
Using nextBigInteger(): 987654321
Enter a big decimal: 9.55555
Using nextBigDecimal(): 9.55555

Scanner 内部工作原理

Scanner 读整行,再按空白符(默认)分割为标记。每个标记可用相应方法获取。如输入 He is 22,标记为 He、is、22。

提示: 标记默认按空格、制表符、换行符分隔,除非自定义分隔符。

java

  1. 深入理解 Java final 关键字:变量、方法与类的不可变性
  2. Java instanceof 运算符完全指南:用法、继承与接口检查
  3. 精通 Java 继承:核心概念、类型与实战示例
  4. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  5. 精通 Java 匿名内部类:定义、语法与实战示例
  6. Java 单例模式详解:安全实现与使用指南
  7. 精通 Java 反射:运行时检查类、方法与字段
  8. 精通 Java ArrayList:操作、方法与最佳实践
  9. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  10. 掌握 Java Scanner:读取文本、数字与复杂类型的综合指南
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除