JavaSE:学习输入输出编写简单的程序

一、打印输出到屏幕

Java提供了三种核心输出方法,适合不同场景:

System.out.println()

  • 打印内容后 自动换行
System.out.println("Welcome"); 
System.out.println("to ISS"); 
// 输出:
// Welcome
// to ISS

System.out.print()

  • 打印内容后 不换行 (光标停留在末尾)
System.out.print("Welcome "); 
System.out.print("to ISS"); 
// 输出:Welcome to ISS

System.out.printf()

  • 格式化输出 (类似C语言的printf
String name = "Alice";
int age = 25;
double height = 1.68;
System.out.printf("Name: %s | Age: %d | Height: %.2f m%n", name, age, height);
// 输出:Name: Alice | Age: 25 | Height: 1.68 m
  • 格式说明符:
    • %s:字符串
    • %d:整数
    • %f:浮点数(%.2f保留两位小数)
    • %n:换行符

二、字符串拼接与转义字符

字符串拼接

+ 连接变量与文本:

double price = 9.99;
System.out.println("Price: $" + price); // 输出:Price: $9.99

转义字符

特殊字符需用反斜杠\转义:

序列作用示例
\n换行"Line1\nLine2"
\t制表符"Name:\tAlice"
\"双引号"He said \"Hi\""
\\反斜杠本身"Path: C:\\Users"

三、数字格式化(DecimalFormat)

精确控制数字显示格式:

import java.text.DecimalFormat;double value = 6543.21;// 示例1:保留1位小数(自动四舍五入)
DecimalFormat df1 = new DecimalFormat("#.#");
System.out.println(df1.format(value)); // 输出:6543.2// 示例2:千位分隔符+两位小数
DecimalFormat df2 = new DecimalFormat("#,##0.00");
System.out.println(df2.format(value)); // 输出:6,543.21// 示例3:固定位数(不足补0)
DecimalFormat df3 = new DecimalFormat("000000.000");
System.out.println(df3.format(42.5)); // 输出:000042.500

符号说明 :

  • #:可选数字位(不显示无效0)
  • 0:强制数字位(不足补0)
  • ,:千位分隔符

四、读取用户输入(Scanner)

通过Scanner类获取键盘输入:

import java.util.Scanner;Scanner scanner = new Scanner(System.in); // 创建Scanner对象System.out.print("Enter your name: ");
String name = scanner.nextLine();        // 读取整行文本System.out.print("Enter your age: ");
int age = scanner.nextInt();             // 读取整数System.out.print("Enter salary: ");
double salary = scanner.nextDouble();    // 读取浮点数scanner.close();                         // 关闭Scanner释放资源System.out.printf("Hello %s! You are %d and earn $%.2f", name, age, salary);

注意事项 :

  • nextLine() 会读取空格和换行,而 nextInt()/nextDouble() 遇到空格即停止
  • 混合输入时,建议先用 nextLine() 读取换行符避免冲突
  • 读取后务必调用 scanner.close()

五、日期时间处理(Java 8+)

import java.time.*;
import java.time.format.DateTimeFormatter;// 获取当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println("原始格式: " + now); // 输出:2025-07-24T23:22:22.123// 自定义格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
String formatted = now.format(formatter);
System.out.println("格式化后: " + formatted); // 输出:24/07/2025 23:22:22

常用类 :

  • LocalDate:仅日期(年月日)
  • LocalTime:仅时间(时分秒)
  • LocalDateTime:日期+时间

六、重点总结

功能核心方法/类使用场景
基础打印System.out.println()快速输出内容并换行
格式化输出System.out.printf()控制数字/字符串对齐和精度
数字格式化DecimalFormat显示千位分隔符/固定小数位
用户输入Scanner + nextXxx()读取键盘输入的各类数据
日期处理LocalDateTime + DateTimeFormatter日期计算和格式化显示

七、练习

Java新手编程练习:掌握基础输入输出


题目1:打印姓名和邮箱

编写程序,按指定格式输出姓名和邮箱:

John Smith  
e0011223@u.nus.edu  
解题代码
public class Exercise1 {  public static void main(String[] args) {  System.out.println("John Smith");  System.out.println("e0011223@u.nus.edu");  }  
}  

解析

  • 使用两个System.out.println()分别打印两行内容
  • println()在输出后自动添加换行符,确保姓名和邮箱分行显示
  • 可直接替换引号内字符串为实际信息

题目2:个性化问候语

编写程序,接收用户输入的姓名,输出问候语:

Good Morning [姓名]
解题代码
import java.util.Scanner;  public class Exercise2 {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("Enter your name: ");  String name = scanner.nextLine();  System.out.println("Good Morning " + name);  scanner.close();  }  
}  

解析

  1. 导入Scanner类处理输入
  2. scanner.nextLine()读取整行文本(包括空格)
  3. 字符串拼接操作"Good Morning " + name组合问候语
  4. 必须调用scanner.close()释放资源

️题目3:整数平方计算

输入一个整数,输出其平方值:

输入:5  
输出:25
解题代码
import java.util.Scanner;  public class Exercise3 {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("Enter an integer: ");  int num = scanner.nextInt();  int square = num * num;  System.out.println("Square: " + square);  scanner.close();  }  
}  

解析

  • nextInt()专用于读取整数输入
  • 使用num * num直接计算平方(比Math.pow()更高效)
  • 整数运算不会产生浮点数精度问题

题目4:浮点数平方计算

输入双精度浮点数,输出其平方值:

输入:2.5  
输出:6.25
解题代码
import java.util.Scanner;  public class Exercise4 {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("Enter a number: ");  double num = scanner.nextDouble();  double square = num * num;  System.out.println("Square: " + square);  scanner.close();  }  
}  

解析

  • nextDouble()读取双精度浮点数
  • 浮点数乘法可能产生精度问题(如0.1 * 0.1 = 0.010000000000000002
  • 商业计算建议使用BigDecimal

题目5:金额格式化

输入双精度数,输出保留两位小数(自动四舍五入):

输入:4.555 → 输出:4.56  
输入:3.232 → 输出:3.23
解题代码
import java.text.DecimalFormat;  
import java.util.Scanner;  public class Exercise5 {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("Enter a number: ");  double num = scanner.nextDouble();  DecimalFormat df = new DecimalFormat("0.00");  String formatted = df.format(num);  System.out.println("Formatted: " + formatted);  scanner.close();  }  
}  

解析

  1. DecimalFormat使用模式字符串控制格式

  2. "0.00"
    

    表示:

    • 至少1位整数(不足补0)
    • 固定2位小数(不足补0,超位四舍五入)
  3. 模式改为"#.##"可隐藏整数部分的无效0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91159.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

访问者模式感悟

访问者模式 首先有两个东西: 一个是访问者vistor (每一个访问者类都代表了一类操作) 一个是被访问者entity (model /info/pojo/node等等这些都行)也就是是说是一个实体类 其操作方法被抽离给了其他类。 访问者模式的核心思想就是**“把操作从数据结构中分离出来,每种操作…

从零到部署:基于Go和Docker的全栈短链接服务实战(含源码)

摘要:本文将手把手带你使用Go语言,并遵循依赖倒置、分层架构等最佳实践,构建一个高性能、高可用的全栈短链接生成器。项目采用Echo框架、GORM、Redis、MySQL,并通过Docker和Docker Compose实现一键式容器化部署到阿里云服务器。文…

MyBatis_3

上一篇文章,我们学习了使用XML实现MyBatis进行增、删、查、改等操作,本篇文章,我们将学习#{ }和${ }获取方法参数的区别和使用MyBatisXML实现动态SQL语句。 #{ }和${ }的区别 在之前的文章中我们都是使用#{ }进行赋值,但实际上M…

智能图书馆管理系统开发实战系列(一):项目架构设计与技术选型

项目背景 智能图书馆管理系统(ILMS)是一个现代化的桌面应用程序,采用前后端分离架构,结合了Web技术的灵活性和桌面应用的用户体验。本项目从高保真原型设计开始,经过完整的软件开发生命周期,最终实现为一个…

应急前端“黄金3分钟”设计:极端场景下的操作界面极速搭建技术

摘要**地震突发,应急指挥系统的操作界面却因加载缓慢无法及时调取数据;火灾现场,消防员手持终端的操作步骤繁琐,延误救援时机。在分秒必争的极端场景中,传统前端操作界面为何频频 “掉链子”?怎样才能在 “…

【Android】三种弹窗 Fragment弹窗管理

三三要成为安卓糕手 零:布局转换 在很多工程当中用的都是LinearLayout和relativelayout,这两者都可以转化为Constrainlayout 注:这种用法并不能精确转换,具体还是要根据自己的需求来做布局约束一:snackbar显示弹窗 ((2…

【AI绘画】Stable Diffusion webUI 与 ComfyUI 全解析:安装、模型、插件及功能对比

一、Stable Diffusion 与 UI 工具概述 Stable Diffusion 是当前最主流的开源 AI 绘画模型,通过文本描述生成高质量图像。为降低使用门槛,开发者推出了多种图形界面(UI)工具,其中AUTOMATIC1111 webUI(简称 …

ABP VNext + GraphQL Federation:跨微服务联合 Schema 分层

ABP VNext GraphQL Federation:跨微服务联合 Schema 分层 🚀 在微服务架构下,服务之间往往需要相互通信,而 GraphQL Federation 提供了一个有效的解决方案,帮助我们将多个微服务的 GraphQL API 聚合成一个统一的入口…

小程序组件的生命周期,以及在小程序中进行接口请求的方法设置

微信小程序组件生命周期与接口请求方法详解一、小程序组件生命周期微信小程序组件的生命周期指的是组件在不同阶段自动触发的函数,开发者可以利用这些钩子函数在特定时机执行相应操作。小程序组件的生命周期主要分为两类:组件自身生命周期和组件所在页面…

在线游戏玩家与物品交互处理

玩家与物品接触后的判定if (hit ! null && hit.CompareTag("Item")){Debug.Log("捡东西");var worldItem hit.gameObject.GetComponent<WorldItem>();if (worldItem ! null){var inventory GetComponent<PlayerInventory>();if (inv…

深入解析Java Stream 构建:AbstractPipeline

Java Stream 宏观介绍见&#xff1a;深入解析 Java Stream 设计&#xff1a;从四幕剧看流水线设计与执行机制-CSDN博客 PipelineHelper PipelineHelper 是 Java Stream API 内部一个至关重要的辅助类。正如其名&#xff0c;它是一个“管道助手”。可以把它想象成一个执行上下文…

《林景媚与命运回响》

《林景媚与命运回响》——当数据库开始回响命运&#xff0c;现实是否还能被信任&#xff1f;《林景媚数据库宇宙》系列第九部第一章&#xff1a;命运的涟漪公元 2089 年&#xff0c;数据库神谕的运行已趋于稳定&#xff0c;PostgreSQL Quantum Engine&#xff08;PQE&#xff0…

图神经网络入门:从GNN开始01图卷积网络GCN节点分类 02图注意力网络GAT 03图自编码器GAE 04 门控图神经网络GGNN

目录 一.基础1-[图论、图算法、CNN] 二.基础2-[图卷积神经网络GCN] 三.torch-geometric.nn工具包安装&#xff08;包含各种算法和数据集&#xff09; 四.GCN任务[节点分类-Cora 数据集] 五.图注意力网络&#xff08;GAT&#xff09; 六.图自编码器&#xff08;GAE&#x…

001 Configuration结构体构造

目录DramSys 代码分析1 Configuration结构体构造1.1 from_path 函数详解1.2 构造过程总结这种设计的好处2 Simulator 例化过程2.1 instantiateInitiatorDramSys 代码分析 1 Configuration结构体构造 好的&#xff0c;我们来详细解释一下 DRAMSysConfiguration.cpp 文件中 fro…

以太坊十年:智能合约与去中心化的崛起

以太坊10周年&#xff0c;敬开发者&#xff0c;敬构建者&#xff0c;敬还在链上的我们 以太坊即将迎来十周年纪念,作为一名在这个生态中深耕了8到9年的见证者&#xff0c;我亲历了它从一纸白皮书的构想到成长为全球领先去中心化平台的全过程。这十年间&#xff0c;以太坊经历了…

kafka 3.9.1版本: kraft + sasl+ standlone 模式完整可行安装步骤

Kafka 3.9.1 Kraft 单机模式安装 安装 OpenJDK 11 CentOS/RHEL yum install -y java-11-openjdk-develUbuntu/Debian apt install -y openjdk-11-jdk下载安装包 wget https://mirrors.aliyun.com/apache/kafka/3.9.1/kafka_2.12-3.9.1.tgz tar -zxvf kafka_2.12-3.9.1.tgz -C /…

Gitee DevOps平台深度评测:本土化优势与功能特性全面解析

Gitee DevOps平台深度评测&#xff1a;本土化优势与功能特性全面解析 在数字化转型浪潮下&#xff0c;企业软件开发流程的自动化与协作效率成为核心竞争力。作为国内领先的代码托管与DevOps平台&#xff0c;Gitee&#xff08;码云&#xff09;凭借其本土化服务与全流程支持能力…

从零开始本地化部署Dify:开源大模型应用平台搭建全指南

在AI应用开发的浪潮中&#xff0c;Dify作为一款开源的大语言模型(LLM)应用开发平台&#xff0c;正逐渐成为开发者和企业的首选工具。它巧妙地融合了后端即服务&#xff08;BaaS&#xff09;和LLMOps的理念&#xff0c;让开发者能够快速搭建生产级的生成式AI应用。无论是构建智能…

Qt 多媒体开发:音频与视频处理

Qt 多媒体模块提供了一套完整的 API&#xff0c;用于开发音频和视频处理应用。从简单的媒体播放到复杂的音视频编辑&#xff0c;Qt 都提供了相应的工具和组件。本文将从基础到高级全面解析 Qt 多媒体开发。 一、Qt 多媒体模块概述 1. 主要组件 Qt 多媒体模块包含以下核心组件&a…

Mac 专业图像处理 Pixelmator Pro

原文地址&#xff1a;Pixelmator Pro Mac 专业图像处理 Pixelmator Pro&#xff0c;是一款非常强大、美观且易于使用的图像编辑器&#xff0c;专为 Mac 设计。 采用单窗口界面、基于机器学习的智能图像编辑、自动水平检测&#xff0c;智能快速选择及更好的修复工具等功能优点…