Java中Scanner的用法及其基本方法

本文深入讲解了Java中Scanner类的使用方法,包括从控制台和文件读取数据,读取不同数据类型,指定分隔符,以及从网络读取数据等。通过实例演示了如何利用Scanner进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Scanner的用法

(1)Scanner读数据;

1) Scanner类可以从控制台或文件读数据;

2)默认情况下,Scanner类用空白字符作为分割标记;

从键盘读入时用System.in创建一个Scanner,

Scanner input=new Scanner(System.in);

从文件读取时用文件创建一个Scanner,

Scanner input=new Scanner(new File(fileName));

(2)扫描基本数据类型的值;

如果Token是基本数据类型的值,可使用 nextByte(), nextShort(), nextInt(), nextLong(),nextFloat(), nextDouble(), 或 nextBoolean() 方法来获取它.

String s = "1 2 3 4";
Scanner scanner = new Scanner(s);
 
int sum = 0;
while (scanner.hasNext())
      sum += scanner.nextInt();
System.out.println("Sum is " + sum);

Scanner.close();

(3)Scanner可以指定一个单词作为分割符;

String s = "Welcome to Java! Java is fun! Java is cool!";
Scanner scanner = new Scanner(s);
scanner.useDelimiter("Java");
    
while (scanner.hasNext())
      System.out.println(scanner.next());

Scanner.close();

结果为:

Welcome to
!
 is fun!
 is cool!

(4)从WEB上读数据;

可以从文件中读数据,也可以从WEB服务器上读数据。

URL:统一资源定位器, WEB文件的唯一地址

URL url = new URL("www.google.com/index.html");

创建URL对象以后,使用URL类的openStream()方法获得输入流,使用这个输入流产生Scanner对象,如下

Scanner reader = new Scanner(url.openStream(),”utf-8”);

通过reader顺序读,获得资源中的文本数据。

2.Scanner基本方法

构造方法:

Scanner(File file);

Scanner(InputStream inputStream);

Scanner(Path path);

Scanner(String fromString);

Scanner(File file,String charsetName);

Scanner(InputStream inputStream, String charsetName);

Scanner(Path path, String charsetName);

 

主要方法:

hasNext(): boolean

next(): String

nextByte(): byte

nextShort(): short

nextInt(): int

nextLong(): long

nextFloat(): float

nextDouble(): double

useDelimiter(pattern: String): Scanner

close(): void

### JavaScanner 类的导入声明 在 Java 编程语言中,`Scanner` 是一个用于获取用户输入的功能强大的工具类。它位于 `java.util` 包下,因此如果要在程序中使用该类,则需要显式地引入对应的包。具体的导入语句如下: ```java import java.util.Scanner; ``` 上述语句的作用是从标准库中加载 `Scanner` 类及其相关方法和属性[^1]。 #### 使用示例 以下是通过 `Scanner` 获取不同类型数据的一个简单实例: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 输入整数 System.out.print("请输入一个整数: "); int number = scanner.nextInt(); System.out.println("您输入的整数是:" + number); // 输入字符串 System.out.print("请输入您的姓名: "); String name = scanner.nextLine(); // 需要注意 nextLine 的特殊行为 System.out.println("您好, " + name); scanner.close(); // 关闭资源 } } ``` 在此代码片段中,可以看到我们不仅可以通过 `nextInt()` 方法来捕获用户的整数值输入,还可以借助于 `nextLine()` 来读取一整个行的内容作为字符串处理[^3]。 另外需要注意的是,在实际开发过程中,每当完成对 `Scanner` 对象的操作之后,应当调用其 `close()` 方法释放所占用的相关资源。 #### 特殊说明关于 nextLine() 当混合使用诸如 `nextInt()` 和 `nextLine()` 这样的不同类型的读入操作时,可能会遇到一些意想不到的行为。这是因为某些读入函数不会消耗掉换行符(`\n`),而后续紧跟的 `nextLine()` 则会立即返回空白行。解决办法是在适当的位置额外增加一次无意义的 `nextLine()` 调用来清理缓冲区中的残留字符[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值