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
英文地址,請注明出處:http://en.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;智能快速選擇及更好的修復工具等功能優點…