`
李灵晖-raylee
  • 浏览: 135686 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-11.5 扫描输入(1)-简介

 
阅读更多

这一章节我们来讨论一下扫描输入。

因为很多时候我们都需要从文本文件里面读取相应的文本,然后进行处理,在输入到其他地方, 这个时候就需要我们下面介绍的扫描输入。

1.通常情况

package com.ray.ch11;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.Scanner;

public class Test {

	private BufferedReader input = new BufferedReader(new StringReader(
			"raylee\n31\n1.77"));

	public BufferedReader getInput() {
		return input;
	}

	public void setInput(BufferedReader input) {
		this.input = input;
	}

	public static void main(String[] args) throws IOException {
		Test test = new Test();
		System.out.println("name:" + test.getInput().readLine());
		System.out.println("age:"
				+ Integer.parseInt(test.getInput().readLine()));
		System.out.println("height"
				+ Double.parseDouble(test.getInput().readLine()));
		System.out.println("height"
				+ Double.parseDouble(test.getInput().readLine()));
	}
}

输出:

name:raylee
age:31
height1.77
Exception in thread "main" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:989)
at java.lang.Double.parseDouble(Double.java:510)
at com.ray.ch11.Test.main(Test.java:29)


上面的是通常的情况,我们使用reader读取一段文本,然后通过readline来读取字符串,然后再强转成各种类型,最后将会放到某个对象里面。

但是这样的操作无疑是有非常多的步骤,而且在处理的过程中非常容易出错。

因此我们下面结束scanner,将减少上面的一些操作步骤。

还有就是,reader里面没有判断操作,因此很容易出现运行时异常的情况。



2.使用Scanner

package com.ray.ch11;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.Scanner;

public class Test {

	private BufferedReader input = new BufferedReader(new StringReader(
			"raylee\n31\n1.77"));

	public BufferedReader getInput() {
		return input;
	}

	public void setInput(BufferedReader input) {
		this.input = input;
	}

	public static void main(String[] args) throws IOException {
		Test test = new Test();
		Scanner scanner = new Scanner(test.getInput());
		if (scanner.hasNext()) {
			System.out.println("name:" + scanner.nextLine());
		}
		if (scanner.hasNext()) {
			System.out.println("age:" + scanner.nextInt());
		}
		if (scanner.hasNext()) {
			System.out.println("height:" + scanner.nextDouble());
		}
	}
}


通过scanner我们减少了强转的过程,而且使得代码更加干净简洁。

而且可以通过hasNext方法判断后续还有没有其他字符,同时hasNext里面还可以包含其他参数从而提高灵活性。


总结:这一章节我们介绍了扫描输入,并且介绍了scanner的一些使用情况。


这一章节就到这里,谢谢。

-----------------------------------

目录



分享到:
评论

相关推荐

    mchange-commons-java-0.2.11.zip

    在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...

    eclipse-java-2021-12-R-win32-x86_64.zip

    1. **代码编辑器**:Eclipse 提供了一个强大的Java代码编辑器,支持语法高亮、自动完成、错误检查以及重构功能。它可以智能感知上下文并提供有用的提示,帮助开发者提高编码效率。 2. **项目管理**:Eclipse IDE...

    api-ntrip-java-client-master.zip_android_ntrip_ntrip java实现_ntr

    1. **源代码结构**:可能包括多个Java源文件,分别负责网络连接、NTRIP协议解析、数据接收与处理等功能。 2. **AndroidManifest.xml**:定义应用的元数据,如权限、活动、服务等。 3. **build.gradle**:构建脚本,...

    aip-java-sdk-4.2.0

    标题 "aip-java-sdk-4.2.0" 指的是一个针对Android平台的AIP(Artificial Intelligence Platform)SDK的特定版本,版本号为4.2.0。这个SDK是百度公司提供的,用于帮助开发者在Android应用程序中集成和使用百度的各种...

    aspose-words-java-23.6-jdk17.jar.zip

    1. **文档创建**:支持从头创建新的文档,或基于现有模板生成文档。 2. **文档读取和解析**:能够打开并读取多种格式的文档,如DOCX、DOC、RTF、PDF、HTML等。 3. **格式转换**:可以在不同文件格式之间进行转换,...

    手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip

    【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...

    java-Swing外观包

    Java Swing是Java GUI(图形用户界面)开发的一个重要组件,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。Swing提供了丰富的组件库,允许开发者创建美观且功能丰富的交互式用户界面。在这个...

    UCSF DOCK 分子对接详细案例(04)-基于RDKit描述符的分子从头设计DOCK-D3N-输入文件.tar.xz

    本资料是UCSF DOCK的使用案例分享的输入资料,将使用DOCK 6.11自带的片段库,使用DOCK/RDKit的 DOCK_D3N功能从头设计分子。便于使用者直接从这部分设计工作开始,不需花时间来准备输入文件。

    java-多文件上传dome

    在Java编程中,多文件...通过这个"java-多文件上传dome"工具包,你可以快速实现上述功能,无需从头编写所有代码。不过,记得在实际项目中,除了功能实现,还要关注性能、安全性和可维护性,确保应用程序的稳定运行。

    java-sdk-master.zip_leancound集成第三方插件_即时通讯

    Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时。在这个名为"java-sdk-master.zip"的压缩包中,包含的是Leancound的Java SDK,这是一个专为集成Leancound服务而设计的开发工具包。Leancound是...

    Java---笔试题大全

    Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...

    java-lib

    在Java编程中,库(Library)是预先编写好的代码集合,程序员可以导入并直接使用,无需从头开始编写所有功能。这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛...

    使用渲染脚本实现模糊视图背景 - Java - 下载.zip

    1. **源代码**:这是实现模糊视图背景的核心部分,可能包含Java类和方法,用于处理图像并应用模糊效果。 2. **示例应用**:可能包含一个简单的Java应用,演示如何使用库来创建模糊视图背景,这对于开发者理解和学习...

    Free Spire.Doc for Java - 3.9 无水印

    1. **创建文档**:通过API,开发者能够从头开始构建Word文档,包括添加文本、图片、表格、形状、页眉和页脚等元素。 2. **编辑现有文档**:能够打开和修改现有的DOC或DOCX文件,进行内容替换、格式调整、页面布局...

    java-pdf&word-jar.zip

    1. 创建新文档:从头开始创建Word文档,设置页面布局、字体样式、段落格式等。 2. 编辑现有文档:加载现有的Word文件并修改内容,包括文本、图像、表格、页眉页脚等元素。 3. 转换文档:将Word文档转换为其他格式,...

    curso-java-pildorasInf:从头开始学习Java

    【标题】:“curso-java-pildorasInf:从头开始学习Java” 这门“从头开始学习Java”的课程,源自"PillsInformática"的教育资源,旨在为初学者提供全面的Java编程知识。Java是一种广泛使用的面向对象的编程语言,由...

    ks-java-lib:包含 Java 的 KS 库

    【标题】"ks-java-lib:包含 Java 的 KS 库" 提供的是一个专门为 Java 开发者设计的库,它扩展了 Java 的功能,为开发者在处理特定任务时提供了便利。这个库可能包含了丰富的类和方法,旨在简化开发过程,提高代码的...

    java-leetcode题解之第21题合并两个有序链表.zip

    标题中的"java-leetcode题解之第21题合并两个有序链表.zip"指的是一个Java编程语言实现的LeetCode算法题解,具体是第21题——“合并两个有序链表”。这道题目要求我们将两个已排序的链表合并为一个新的已排序链表并...

    java-bot:这是一个从头开始编写JavaScript机器人

    在这个项目中,“java-bot”显然是一个用JavaScript实现的机器人示例,可能包含了一系列核心功能,如响应用户输入、处理网络请求或者分析数据。 首先,我们要理解JavaScript的基础知识。JavaScript是一种广泛使用的...

Global site tag (gtag.js) - Google Analytics