当前位置: 首页 > news >正文

Java学习之旅第一季-27:输入与输出

在初学编程时,还没有比较友好的界面供用户输入和输出数据,我可以先使用JDK自带的方法,在控制台使用键盘输入以及直接在控制台输出信息到显示器上。

27.1 键盘输入

键盘是计算机中的标准输入设备,在Java中可以使用Scanner类的方法获取从控制台在用户的键盘输入。

要使用Scanner类,首先要使用类的实例化语法将该类实例化,当然使用前还要先导入它。

完整类的声明代码如下:

package com.laotan.article27;import java.util.Scanner;/*** @author 老谭*/
public class Scanner1 {static void main() {// 实例化 Scanner 类Scanner scanner = new Scanner(System.in);}
}

有了Scanner 类的实例,就可以调用它声明好的方法来获取用户输入,下面根据获取的数据类型来演示代码:

1、获取整数:调用scanner的nextInt( )方法获取int类型的整数

Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
System.out.println(num1);

注意:在等待用户从键盘输入时,程序会阻塞,即会停在上述第2行代码处,只有用户在控制台输入整数后,按回车程序才会接收到用户的输入,然后赋值给前面的变量,接着就是后续代码的正常执行。

还有一个方法用于按照指定的进制获取用户输入的整数:

Scanner scanner = new Scanner(System.in);
int num2 = scanner.nextInt(8);       // 按照8进制输入整数
System.out.println(num2);

如果输入的数据不是整数或不合法,就会抛出异常,如下图中输入的是1.2,但代码中获取的是int类型的整数:

用户输入出错

2、获取浮点数:调用scanner的nexFloat( ) 或 nextDouble( )方法

Scanner scanner = new Scanner(System.in);
float num3 = scanner.nextFloat();
double num4 = scanner.nextDouble();

3、获取字符串

String s1 = scanner.next();        // 以换行或空格为结束标志
String s2 = scanner.nextLine();    // 以换行为结束标记

next( )方法和nextLine( )方法不同之处在于,前者遇到空格就会结束读取,对比下同样的输入,使用不同方法获取到的字符串差异:

使用第1行代码的next( )方法的效果如下,输入的是带有空格的字符串,结果获取到的只有空格之前的字符串。

键盘输入4

使用第2行代码的nextLine( )方法的效果不同,输入的是带有空格的字符串,获取到的也是保留空格的字符串。

键盘输入3

27.2 控制台输出

显示器是计算机中的标准输出设备,Java中可以使用System.out将数据输出到控制台,System.out的数据类型是PrintStream,所以使用它提供的方法就可以将数据输出到控制台。首先看两个最常用的方法 println( )和print( )方法。这两个方法我们之前见过,一个输出后有换行,另一个输出后不换行。比如:

System.out.println("Hello");
System.out.println("Laotan!");

上面两句输出的效果是分两行显示Hello Laotan!,因为第 1 行代码使用了println( )方法,输出后会自动换行。

换行输出

如果换成下面的输出:

System.out.print("Hello");
System.out.print(" Laotan!");

使用 print() 方法则不会换行后,两个字符串会拼接在一起输出。

不换行输出

27.3 格式化输出

Java 5引入的格式字符串是以百分号(%) 开头,后面跟一个特定的字符表达不同的输出格式,用于printf( )方法中。

下表列出了常见的格式字符串:

格式字符串描述
%c单个字符
%d十进制整数
%f十进制浮点数
%o八进制数
%s字符串
%x十六进制数
%%输出百分号%
%e指数形式实数

格式字符串使用示例:

System.out.printf("以字符输出65,结果是:%c \n",65);    // 65会替换%c以字符方式输出
System.out.printf("%d \n",0x12FE);                   // 16进制数0x12FE替换%d以十进制数输出
System.out.printf("%.2f \n",123.456);                // 123.456替换%.2f保留小数点后2位输出
System.out.printf("%e \n",100.0);                    // 100.0替换%e以指数形式输出

运行之后的结果如下:

以字符输出65,结果是:A 
4862 
123.46 
1.000000e+02 

printf( )方法输出后不会自动换行,所以在输出的字符串最后加了转义字符 \n 达到换行的目的。

27.4 小结

本小节介绍了Java控制台输入输出方法。使用Scanner类实现键盘输入,包括nextInt()获取整数、nextFloat()/nextDouble()获取浮点数、next()/nextLine()获取字符串。控制台输出通过System.out的print()和println()方法实现,前者不换行后者换行。还讲解了格式化输出,使用printf()配合%c、%d、%f等格式字符串实现不同类型数据的格式化显示。

http://www.dtcms.com/a/438521.html

相关文章:

  • 地方网站域名选择嘉伟网络智能建站
  • Leetcode 3695. Maximize Alternating Sum Using Swaps
  • 模型瘦身四剑客:剪枝、量化、低秩分解、知识蒸馏详解
  • php 校园网站设计如何做网站流程图
  • 如何高效下载 YouTube 视频?实用工具推荐
  • 【洛谷】6 道题吃透堆的应用:模板堆、第 k 小、最小函数值等全攻略
  • MySQL库的操作(ubuntu)
  • 利用AI赋能抑郁症管理:创业项目与技术方案
  • 中国网站建设市场分析报告上海网站设计合理柚v米科技
  • 【IMX6ULL项目复现】sg90电机-pwm
  • 2025软件供应链安全实战:从漏洞修补到风险预测的转型指南
  • iOS26 打开开发者模式
  • 注销主体备案与网站备案沧州最火网站
  • AI智能体在研究分析中的仿真应用:AI驱动的复杂系统建模与“理论压缩”
  • 表格识别技术:突破传统OCR的局限,通过定位-解析-重建三步策略攻克无边框、合并单元格等视觉难题
  • 免费企业模板网站制作网页设计公司
  • 开放定址法的平均查找长度计算
  • MEVless,MEV解决之道
  • 网站 自适应文字大小怎么做响应式网站建设公司
  • 手写MyBatis第89弹:动态SQL解析与执行时机深度剖析
  • 解读172页“十五五”企业战略规划指导手册【附全文阅读】
  • 网站开发个人工作室网站推送怎么做的
  • 机器学习:逻辑回归
  • 机器学习——SVM支持向量机详解
  • app网站开发wordpress 自定义字段 调用
  • 互动网站建设什么意思wordpress 公众号插件
  • CUDA 13.0 中 CCCL 2.x 到 CCCL 3.0 迁移介绍
  • 临沂企业网站建设网站建设 技术方案
  • 《计算机视觉度量:从特征描述到深度学习》-- 基于MAE预训练模型DinoV3的图像特征分析
  • LabVIEW继电保护检测