之前一直力扣刷题,核心代码模式用久了不会处理输入输出,梳理知识点以参加ACM模式的笔试。

一、从键盘输入数据

输入数据标准格式:

  1. 导包:import java.util.Scanner;
  2. Scanner的实例化:Scanner scan = new Scanner(System.in);
  3. 调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量

next() 和 nextLine() :

  1. next() 和 nextLine() 都可以获取字符串;
  2. next() 接收会以空格或回车作为结束标识符 ,nextLine() 只以回车作为结束标识符;
  3. next() 会删掉输入的第一个单词的前面的空格,而 nextLine() 则全部接收;
  4. 注意:比如说 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,这个字符就接收不到,把上一个输入的残留回车当作结束标识符直接结束了。

多次输入(题目要求处理多个测试用例):

  1. boolean hasNext():检测是否还有单词输入。
  2. 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)

二、输出数据格式

输入浮点型只保留若干小数

  1. String的 format 方法:每个格式控制以%开始,后跟被格式化的数值类型。
  2. 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

注意:

  1. ”%08.2f“ 表示输出浮点型数据,数据共8列(包含小数点,不足8位前面用0补齐),小数点后保留两位。
  2. “%+,010.2f” 表示输出浮点型数据,数据共10列(包含小数点、”+“ 和 ”,“ ,不足10位用0补齐),小数点后保留两位小数。

参考文献:

  1. 牛客网输入输出(Java)总结
  2. Java中.next()和.nextLine()的区别
  3. Java基础【2】输入与输出
  4. java中String的格式化format()方法

(笔试题必备)Java输入输出知识点整理相关推荐

  1. Java基础知识点整理(2022年最新版)

    看了网上很多关于Java基础知识点整理的文章,但是感觉都不是很好,要么不全面,要么不准确,要么排版太乱了,所以今天整理了一份Java基础知识点整理(2022年最新版),希望对大家有帮助哈~ 由于本文篇 ...

  2. java基础知识点整理一

    java基础知识点整理一 引言 '''突然发觉任何一门语言的基础知识部分,都比较杂一些.如果个人经过梳理之后,知识体系系统化,可以让基础更加牢靠一些.但是还是会有一些遗忘.所以,我想把一些比较重要但是 ...

  3. 记 随手科技2020届实习生笔试题(Java开发工程师)笔试题

    2020届实习生笔试题(Java开发工程师) 一.选择题(共6题,每小题5分,满分30分) 1 2 3 4 5 6 总分 B B A C B C 1.下列排序算法中,初始数据集合对排序性能无影响的是( ...

  4. 无锡中软国际有限公司笔试题(Java)附加个人答案版

    昨天把这套题做了一下 也许存在很多问题  望大家多多指教! 无锡中软国际有限公司笔试题(Java) (本卷总分100分,60分及格,时间60分钟) 一,不定项选择题(每小题3分,共15题,总计45分) ...

  5. 最全最新的的Java核心知识点整理!!! 【推荐】

    前言: 想要文档版的小伙伴们可以私信我领取哦,更加清晰 一目了然 ~ Java核心知识点! 博客整理出来的稍微有点乱~ 目录 目录 -1 JVM - 19 2.1. 线程 - 20 2.2. JVM ...

  6. 笔试题——用java实现股票交易日的判断

    今天记录一道笔试题 1.原题: 需求: 股票交易或者分析会涉及到交易日的查询,为了分析高效快速,通常会把交易日放到内存中.要求实现下面的接口. interface TradingDayService ...

  7. 杨校老师课堂之Java面向对象知识点整理集锦

    目录 第一部分 Java面向对象 1.开发环境搭建及开发工具eclipse使用 2.类和对象 3. 成员变量和局部变量区别 4. 数据类型 5.构造函数 6.函数 7. 成员变量的初始化 8. thi ...

  8. java冷门知识点整理

    Java基础知识整理 数据类型: == 和 !=: 两个new出来的Integer比较,如果值的范围介于-128和127之间,则比较Integer也能得到正确结果,其归功于Integer内部维护的In ...

  9. Java基础以及一些面试必备的基础知识点整理

    基础: 1.final  finally finalize() 的区别 final 是不可变得,最终的,用来修饰方法,变量,类 finally 是异常处理的一部分,只能用在try/catch中,表示希 ...

最新文章

  1. 【C++】【四】企业链表
  2. 查找SQL SERVER 2005 IO过高的数据库
  3. Mongodb最佳实践及使用问题
  4. htc one m7刷Linux,HTC one m7官方刷机详细操作教程
  5. python引用传递产生的问题_python关于lambda、引用传递等易犯的错误
  6. html5列表菜单特效,HTML5 SVG汉堡包菜单按钮分段动画特效
  7. 【HDU - 1533】Going Home(网络流,二分图最优匹配,KM算法)
  8. Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
  9. Arturia SQ80 V for Mac 音频波形合成器
  10. 盘点各种程序员常用的框架,看看你是否落伍了?
  11. java如何防止sql注入
  12. 1.按钮点击的四种方式
  13. android ppt 转图片显示不全,ppt转pdf图片显示不全怎么办 这两种方法供您参考
  14. itools电脑显示服务器维护,win10系统iTools无法打开且服务无法启动的具体技巧
  15. fiddler抓包史上最完整细致的步骤(抓包微信小程序解决无法Iphone无法上网)
  16. 远程工具psexec
  17. Java语言开发在线音乐推荐网 音乐推荐系统 网易云音乐爬虫 基于用户、物品的协同过滤推荐算法 SSM(Spring+SpringMVC+Mybatis)框架 大数据、人工智能、机器学习项目开发
  18. Shema与数据类型优化
  19. 移动端开发——APP端上H5容器化建设
  20. 【BUG】Ubuntu 3090显卡驱动掉了,重新安装

热门文章

  1. 乱谈诸葛亮的团队建设
  2. 本题要求实现函数输出n行字符金字塔。
  3. 尹世明:融合生态力量,引领智能变革
  4. LINUX目录——FHS标准
  5. NLP项目流程及思考逻辑
  6. 基于物联网的自动灌溉系统的设计与实现
  7. 当广告效果追踪撞上隐私保护
  8. R语言|绘制简单小提琴图
  9. Linux 上最好的9款视频编辑器
  10. 小学五年级计算机工作计划,2017小学五年级新学期工作计划