Java輸入與輸出詳解

Java輸入和輸出

  • 前言
  • 一、Java打印Hello World
  • 二、輸出到控制臺
    • 基本語法
    • 代碼示例
    • 格式化字符串
  • 三、從鍵盤輸入
    • 讀入一個字符
      • 正確寫法
    • 使用 Scanner 讀取字符串/整數/浮點數
    • 使用 Scanner 循環讀取 N 個數字


前言

推薦一個網站給想要了解或者學習人工智能知識的讀者,這個網站里內容講解通俗易懂且風趣幽默,對我幫助很大。我想與大家分享這個寶藏網站,請點擊下方鏈接查看。
https://www.captainbed.cn/f1

Java輸入和輸出涉及從各種來源(如鍵盤、文件等)讀取數據以及將數據發送到各種目標(如屏幕、文件等)。Java提供了多種流類(如InputStream和OutputStream)來處理這些操作,允許開發者以靈活和高效的方式處理數據輸入輸出。


一、Java打印Hello World

新生嬰兒會以自己獨特的方式向這個嶄新的世界打招呼,Java剛出來后,也算是一個新事物,

在這里插入圖片描述

那Java是否也應該向這個美好的世界來聲問候呢?

我們來看下Java是如何來實現問候的。

public static void main(String[] args) {System.out.println("Hello World");
}

在這里插入圖片描述

二、輸出到控制臺

基本語法

System.out.println(msg); // 輸出一個字符串, 帶換行 
System.out.print(msg);// 輸出一個字符串, 不帶換行 
em.out.printf(format, msg); // 格式化輸出 
  • println 輸出的內容自帶 \n, print 不帶 \n
  • printf 的格式化輸出方式和 C 語言的 printf 是基本一致的.

代碼示例

public static void main(String[] args) {System.out.println("hello world");int x = 10;System.out.printf("x = %d\n", x);
}

在這里插入圖片描述

格式化字符串

轉換符類型舉例
d十進制整數 ("%d", 100)100
x十六進制整數 ("%x", 100)64
o八進制整數 ("%o", 100)144
f定點浮點數 ("%f", 100f)100.000000
e指數浮點數 ("%e", 100f)1.000000e+02
g通用浮點數 ("%g", 100f)100.000
a十六進制浮點數 ("%a", 100)0x1.9p6
s字符串 ("%s", 100)100
c字符 ("%c", ‘1’)1
b布爾值 ("%b", 100)true
h散列碼 ("%h", 100)64
%百分號 ("%.2f%%", 2/7f)0.29%

三、從鍵盤輸入

讀入一個字符

直接使用 System.in.read 可以讀入一個字符. 但是需要搭配異常處理

public static void main(String[] args) {System.out.print("Enter a Char:");char i = (char) System.in.read();System.out.println("your char is :"+i);
}

在這里插入圖片描述

正確寫法

import java.io.IOException;// 需要導入 IOException 包
public static void main(String[] args) {try {System.out.print("Enter a Char:");char i = (char) System.in.read();System.out.println("your char is :"+i);} catch (IOException e) {System.out.println("exception");}
}

在這里插入圖片描述

使用 Scanner 讀取字符串/整數/浮點數

import java.util.Scanner; // 需要導入 util 包
public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入你的姓名:");String name = sc.nextLine();System.out.println("請輸入你的年齡:");int age = sc.nextInt();System.out.println("請輸入你的工資:");float salary = sc.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);sc.close(); // 注意, 要記得調用關閉方法
}

在這里插入圖片描述
這段代碼是一個簡單的Java程序。它使用了Scanner類來從用戶輸入中獲取數據。

首先,我們導入了java.util.Scanner類,這是一個可以從標準輸入中讀取數據的工具類。

然后,在main方法中,我們創建了一個Scanner對象sc來讀取用戶的輸入。通過調用nextLine()方法,我們可以獲取用戶輸入的姓名并將其保存在name變量中。接下來,通過調用nextInt()方法,我們獲取用戶輸入的年齡并保存在age變量中。最后,通過調用nextFloat()方法,我們獲取用戶輸入的工資并保存在salary變量中。

然后,我們輸出了用戶輸入的信息。通過使用"+"操作符,我們將字符串和變量連接起來輸出。

最后,我們調用了sc.close()方法來關閉Scanner對象,這是一個好的習慣,以釋放資源并避免內存泄漏。

這樣,程序就會等待用戶輸入,并將輸入的姓名、年齡和工資打印出來。

使用 Scanner 循環讀取 N 個數字

import java.util.Scanner; // 需要導入 util 包
public static void main(String[] args) {Scanner sc = new Scanner(System.in);double sum = 0.0;int num = 0;while (sc.hasNextDouble()) {double tmp = sc.nextDouble();sum += tmp;num++;}System.out.println("sum = " + sum);System.out.println("avg = " + sum / num);sc.close();
}

這段代碼是一個簡單的Java程序,它使用了Scanner類從用戶輸入中獲取一系列的浮點數,并計算它們的總和和平均值。

首先,我們導入了java.util.Scanner類,這是一個用于從標準輸入中讀取數據的工具類。

然后,在main方法中,我們創建了一個Scanner對象sc來讀取用戶的輸入。接下來,我們初始化了兩個變量sumnum,用于保存浮點數的總和和數量。

然后,我們使用一個while循環來判斷用戶是否還輸入了一個浮點數。通過調用sc.hasNextDouble()方法,我們可以判斷下一個輸入是否是一個浮點數。只要用戶輸入的還是浮點數,循環就會繼續執行。

在循環體內,我們調用sc.nextDouble()方法來獲取用戶輸入的浮點數,并將其保存在臨時變量tmp中。然后我們將tmp的值累加到sum變量中,同時將num加1以記錄輸入的數量。

當用戶輸入結束后,也就是不再輸入浮點數時,循環將會終止。此時,我們輸出sum變量的值作為浮點數的總和,并通過sum / num計算出浮點數的平均值。

最后,我們調用sc.close()方法來關閉Scanner對象,這是一個好的習慣,以釋放資源并避免內存泄漏。

這樣,程序會一直等待用戶輸入浮點數,并計算它們的總和和平均值,直到沒有更多的輸入為止。

ps:當循環輸入多個數據的時候, 使用 ctrl + z 來結束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl +d)
在這里插入圖片描述


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14402.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用 Java 和 MyBatis 實現動態排序的多表查詢

相關 java實現一個根據字段和排序方式進行排序 java實現自定義排序 自定義動態排序 前言 在Web開發中,前端通常會傳遞一些參數來決定數據的排序方式,例如排序字段和排序方向。本文將展示如何在 Java 項目中結合 MyBatis 實現動態排序,尤其…

MySQL-性能分析

1、數據庫服務器的優化步驟 2、查看系統性能參數 可以使用show status語句查詢一些MySQL數據庫服務器的性能參數 執行頻率語法格式:show [ global | session ] status like 參數 ;常用性能參數如下所示 參數名說明connection連接MySQL服務器的次數upti…

Autodesk 3ds Max下載,3ds MAX 2024三維建模渲染軟件安裝包下載安裝

3ds MAX中文版,其強大的功能和靈活的操作為廣大用戶提供了無限的創意空間,使得高質量動畫、最新游戲、設計效果等領域的制作需求得以完美滿足。 ? 作為一款三維建模軟件,3ds MAX中文版具備極高的建模精度和渲染質量。它支持多種建模方式&am…

【Fiddler抓包工具】第四節.斷點設置和弱網測試

文章目錄 前言一、斷點設置 1.1 全局斷點 1.2 局部斷點 1.3 打斷點的幾種常用命令 1.4 篡改響應報文二、弱網測試 2.1 網絡限速 2.2 精準限速總結 前言 一、斷點設置 1.1 全局斷點 特點: 中斷Fiddler捕獲的所有請求,包括…

記錄一次prometheus因時區不同導致的無法獲取數據問題

一、故障出現原因 prometheus機器壓力過大,內存耗盡,負載飆高,導致無法登錄; 于是從公有云web界面進行重啟,重啟后內存還是不足,負載很快升高; 對機器進行配置變更,由4C8G升級為4…

在鏈游中,智能合約如何被用于實現游戲內的各種功能

隨著區塊鏈技術的快速發展,鏈游(Blockchain Games)作為區塊鏈技術的重要應用領域之一,正逐漸展現出其獨特的魅力和優勢。其中,智能合約作為鏈游的核心技術之一,對于實現游戲內的各種功能起到了至關重要的作…

【C++初階】—— 類和對象 (下)

📝個人主頁🌹:EterNity_TiMe_ ?收錄專欄?:C “ 登神長階 ” 🌹🌹期待您的關注 🌹🌹 類和對象 1. 運算符重載運算符重載賦值運算符重載前置和后置重載 2. 成員函數的補充3. 初始化列…

Java的函數式接口和 Lambda 表達式

在 Java 8 中,可以通過使用函數式接口和 Lambda 表達式來實現類似 JavaScript 中將函數作為參數傳遞的功能。 以下是一個簡單的示例,演示如何在 Java 中使用函數式接口將函數作為參數傳遞: 定義一個函數式接口(函數式接口是只有…

CentOS上升級glibc2.17至glibc2.31

glibc是Linux系統中的重要組件之一。在CentOS中,glibc通常是作為系統的默認C標準庫使用的,因為它是許多軟件的基礎庫。在CentOS中,glibc的版本通常與CentOS版本一起發布。因為CentOS通常會優先選擇穩定性而不是最新性,所以CentOS使…

Vue項目如何進行XSS防護

前言 在目前主推網絡安全的情況下,很多開發項目都需要在上線前進行滲透測試,當符合滲透測試標準及沒有安全漏洞即可正常上線,當前還會有代碼審計的,這個另當別論。 如何對XSS進行防護 在很多的富文本編輯器項目中,x…

leecode熱題100---994:腐爛的橘子

題目: 在給定的 m x n 網格 grid 中,每個單元格可以有以下三個值之一: 值 0 代表空單元格; 值 1 代表新鮮橘子; 值 2 代表腐爛的橘子。 每分鐘,腐爛的橘子 周圍 4 個方向上相鄰 的新鮮橘子都會腐爛。 返回…

C++之第九課

課程列表 今天&#xff0c;我們要學習一種結構&#xff1a;循環結構。 循環的方法有3種。 今天先將第1種for學了&#xff1a; int a;//循環變量 int b; for(a1;a<10;a){//像if那樣“打包”cout<<a<<" ";b; } 當然&#xff0c;也可以這樣寫&#…

【MySQL精通之路】InnoDB(5)-內存結構

總目錄&#xff1a; 【MySQL精通之路】InnoDB存儲引擎-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】InnoDB(4)-架構圖-CSDN博客 目錄 ?編輯 1 緩存池&#xff08;Buffer Pool&#xff09; 1.1 緩存池LRU算法 1.2 緩存區配置 1.3 使用InnoDB標準監視器監視緩存池 …

SSRF服務端請求偽造漏洞原理與修復及靶場實踐

SSRF服務端請求偽造漏洞原理與修復及靶場實踐 SSRF漏洞原理與檢測 SSRF&#xff08;Server-Side Request Forgery&#xff0c;服務器端請求偽造&#xff09;漏洞是一種因為服務端提供了遠程訪問服務&#xff0c;而并未對請求目標進行限制或限制不嚴格而引起的安全漏洞&#x…

Java Apache Jexl規則引擎初體驗

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、模板引擎的選擇&#xff1f;二、什么是JEXL規則引擎&#xff1f;優點缺點 三、其他規則引擎四、示例1.引入依賴2.方法示例3、代碼解釋4、效果![import java…

VMware虛擬機Ubuntu 22.04.4 LTS系統 NAT網絡設置異常解決

現象&#xff1a; 近日&#xff0c;一直工作正常的虛擬機莫名出現網絡無法連接的情況。 參考網上的各種教程&#xff0c;終于解決問題。 如遇到類似情況的&#xff0c;可以嘗試這個方式&#xff0c;看能否解決問題。 網絡連接&#xff1a;采用NAT模式 異常&#xff1a;網絡圖標…

C++數據結構——哈希表

前言&#xff1a;本篇文章將繼續進行C數據結構的講解——哈希表。 目錄 一.哈希表概念 二.哈希函數 1.除留取余法 三.哈希沖突 1.閉散列 線性探測 &#xff08;1&#xff09;插入 &#xff08;2&#xff09;刪除 2. 開散列 開散列概念 四.閉散列哈希表 1.基本框架 …

場內期權怎么開戶?傭金手續費最低是多少?

今天期權懂帶你了解場內期權怎么開戶&#xff1f;傭金手續費最低是多少&#xff1f;我國的首個場內期權是50ETF期權&#xff0c;隨著投資者對期權產品日漸熟悉&#xff0c;投資者參與數量與交易量穩步增長。 場內期權怎么開戶&#xff1f; 滿足資金要求&#xff1a;根據監管要…

自動打卡腳本

奕輔導自動打卡腳本 打卡腳本&#xff0c;使用前需手動打卡一次并需要抓包&#xff0c;在其中找到相關的token。 # -*- encoding:utf-8 -*-import requests import jsonpunch_in_data {"questionnairePublishEntityId": "1001640744275339000980000000001&qu…

MyBatis:Parameter Maps collection does not contain value for 報錯解決收錄

MyBatis&#xff1a;Parameter Maps collection does not contain value for 報錯問題解決收錄 1.報錯收錄 后端測試時偶然遇到的用mybatis生成好的mapper文件&#xff0c;報Result Maps collection does not contain value…的錯誤 2.報錯分析 java.lang.ILledalAraumentEx…