(笔试题必备)Java输入输出知识点整理
之前一直力扣刷题,核心代码模式用久了不会处理输入输出,梳理知识点以参加ACM模式的笔试。
一、从键盘输入数据
输入数据标准格式:
- 导包:import java.util.Scanner;
- Scanner的实例化:Scanner scan = new Scanner(System.in);
- 调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
next() 和 nextLine() :
- next() 和 nextLine() 都可以获取字符串;
- next() 接收会以空格或回车作为结束标识符 ,nextLine() 只以回车作为结束标识符;
- next() 会删掉输入的第一个单词的前面的空格,而 nextLine() 则全部接收;
- 注意:比如说 nextLine() 的上一个输入残留了enter,这个字符就接收不到,把上一个输入的残留回车当作结束标识符直接结束了。
示例:
import java.util.Scanner;
public class InputOutputTest {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String str1 = scan.next();String str2 = scan.nextLine();System.out.println("接收到的第一个字符为:" + str1);System.out.println("接收到的第二个字符为:" + str2);}
}
输出:
i love java //前后各4个空格
接收到的第一个字符为:i//忽略了前四个空格
接收到的第二个字符为: love java //前面一个空格,后面有四个空格
i //后面输入了4个空格和一个enter回车
接收到的第一个字符为:i//没有空格
接收到的第二个字符为: //这里有四个空格
1、这里我前面输入4个空格,next() 先接收到之后,直接忽略了空格,并且将第一个单词后面的空格作为结束标识符。
2、nextLine() 接收了第一个单词之后的所有字符,包括被 next() 视作结束标志符的空格。
3、看到第二次输入示例:nextLine() 的上一个输入残留了enter,这个字符就接收不到,把上一个输入的残留回车当作结束标识符直接结束了。
多次输入(题目要求处理多个测试用例):
- boolean hasNext():检测是否还有单词输入。
- boolean hasNextInt()、boolean hasNextDouble():检测输入中是否整数或浮点数
示例:(这里使用 nextLine() 接收带空格的一行字符串,还有字符串以空格进行分割)
class InputOutputTest1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//多行输入while (scan.hasNext()) {String str1 = scan.nextLine();System.out.println("接收到的字符为:" + str1);String[] str2 = scan.nextLine().split(" ");for (String i:str2) {System.out.println("字符串切割:" + i);}}}
}
输出:
i love java
接收到的字符为:i love java
i love java
字符串切割:i
字符串切割:love
字符串切割:java
示例:(判断输入的是否是整形数据)
class InputOutputTest2 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//多行输入while (scan.hasNextInt()) {int num1 = scan.nextInt();int num2 = scan.nextInt();System.out.println("接收到的两数字和为:" + (num1 + num2));}}
}
输出:
1
2
接收到的两数字和为:3
注意:如果输入不是整形数据,报错:InputMismatchException(输入数据类型不匹配)
23
i love
Exception in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:939)at java.base/java.util.Scanner.next(Scanner.java:1594)at java.base/java.util.Scanner.nextInt(Scanner.java:2258)at java.base/java.util.Scanner.nextInt(Scanner.java:2212)at inputoutput.InputOutputTest2.main(InputOutputTest.java:30)
二、输出数据格式
输入浮点型只保留若干小数
- String的 format 方法:每个格式控制以%开始,后跟被格式化的数值类型。
- System.out.printf():这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。(与 format 方法同理,其中识别到 %n 表示换行)
示例:
class InputOutputTest3 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);Double num1 = scan.nextDouble();Double num2 = scan.nextDouble();System.out.println(String.format("输出数据为:%08.2f", num1));System.out.printf("输出数据为:%+,010.2f",num2);}
}
输出:
345.678
34544.567
输出数据为:00345.68
输出数据为:+34,544.57
注意:
- ”%08.2f“ 表示输出浮点型数据,数据共8列(包含小数点,不足8位前面用0补齐),小数点后保留两位。
- “%+,010.2f” 表示输出浮点型数据,数据共10列(包含小数点、”+“ 和 ”,“ ,不足10位用0补齐),小数点后保留两位小数。
参考文献:
- 牛客网输入输出(Java)总结
- Java中.next()和.nextLine()的区别
- Java基础【2】输入与输出
- java中String的格式化format()方法
(笔试题必备)Java输入输出知识点整理相关推荐
- Java基础知识点整理(2022年最新版)
看了网上很多关于Java基础知识点整理的文章,但是感觉都不是很好,要么不全面,要么不准确,要么排版太乱了,所以今天整理了一份Java基础知识点整理(2022年最新版),希望对大家有帮助哈~ 由于本文篇 ...
- java基础知识点整理一
java基础知识点整理一 引言 '''突然发觉任何一门语言的基础知识部分,都比较杂一些.如果个人经过梳理之后,知识体系系统化,可以让基础更加牢靠一些.但是还是会有一些遗忘.所以,我想把一些比较重要但是 ...
- 记 随手科技2020届实习生笔试题(Java开发工程师)笔试题
2020届实习生笔试题(Java开发工程师) 一.选择题(共6题,每小题5分,满分30分) 1 2 3 4 5 6 总分 B B A C B C 1.下列排序算法中,初始数据集合对排序性能无影响的是( ...
- 无锡中软国际有限公司笔试题(Java)附加个人答案版
昨天把这套题做了一下 也许存在很多问题 望大家多多指教! 无锡中软国际有限公司笔试题(Java) (本卷总分100分,60分及格,时间60分钟) 一,不定项选择题(每小题3分,共15题,总计45分) ...
- 最全最新的的Java核心知识点整理!!! 【推荐】
前言: 想要文档版的小伙伴们可以私信我领取哦,更加清晰 一目了然 ~ Java核心知识点! 博客整理出来的稍微有点乱~ 目录 目录 -1 JVM - 19 2.1. 线程 - 20 2.2. JVM ...
- 笔试题——用java实现股票交易日的判断
今天记录一道笔试题 1.原题: 需求: 股票交易或者分析会涉及到交易日的查询,为了分析高效快速,通常会把交易日放到内存中.要求实现下面的接口. interface TradingDayService ...
- 杨校老师课堂之Java面向对象知识点整理集锦
目录 第一部分 Java面向对象 1.开发环境搭建及开发工具eclipse使用 2.类和对象 3. 成员变量和局部变量区别 4. 数据类型 5.构造函数 6.函数 7. 成员变量的初始化 8. thi ...
- java冷门知识点整理
Java基础知识整理 数据类型: == 和 !=: 两个new出来的Integer比较,如果值的范围介于-128和127之间,则比较Integer也能得到正确结果,其归功于Integer内部维护的In ...
- Java基础以及一些面试必备的基础知识点整理
基础: 1.final finally finalize() 的区别 final 是不可变得,最终的,用来修饰方法,变量,类 finally 是异常处理的一部分,只能用在try/catch中,表示希 ...
最新文章
- 【C++】【四】企业链表
- 查找SQL SERVER 2005 IO过高的数据库
- Mongodb最佳实践及使用问题
- htc one m7刷Linux,HTC one m7官方刷机详细操作教程
- python引用传递产生的问题_python关于lambda、引用传递等易犯的错误
- html5列表菜单特效,HTML5 SVG汉堡包菜单按钮分段动画特效
- 【HDU - 1533】Going Home(网络流,二分图最优匹配,KM算法)
- Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
- Arturia SQ80 V for Mac 音频波形合成器
- 盘点各种程序员常用的框架,看看你是否落伍了?
- java如何防止sql注入
- 1.按钮点击的四种方式
- android ppt 转图片显示不全,ppt转pdf图片显示不全怎么办 这两种方法供您参考
- itools电脑显示服务器维护,win10系统iTools无法打开且服务无法启动的具体技巧
- fiddler抓包史上最完整细致的步骤(抓包微信小程序解决无法Iphone无法上网)
- 远程工具psexec
- Java语言开发在线音乐推荐网 音乐推荐系统 网易云音乐爬虫 基于用户、物品的协同过滤推荐算法 SSM(Spring+SpringMVC+Mybatis)框架 大数据、人工智能、机器学习项目开发
- Shema与数据类型优化
- 移动端开发——APP端上H5容器化建设
- 【BUG】Ubuntu 3090显卡驱动掉了,重新安装