java的輸入輸出模板(ACM模式)

文章目錄

  • 1、前置準備
  • 2、普通輸入輸出API
    • ①、輸入API
    • ②、輸出API
  • 3、快速輸入輸出API
    • ①、BufferedReader
    • ②、BufferedWriter
  • 案例
    • 題目描述
    • 代碼

面試有時候要acm模式,刷慣leetcode可能會手生不會acm模式,該文直接通過幾個題來熟悉java的輸入輸出模板,多寫幾遍,熟悉即可。

1、前置準備

首先我們需要熟悉在沒有idea的情況下如何手寫并編譯運行一個.java文件。

class Main{public static void main(String[] args) {System.out.println("hello java");}
}

每個.java文件必須有一個類我們一般命名為Main,文件名與代碼中的類名必須一樣。
在這里插入圖片描述
命令行輸入命令:

javac Main.java

生成Main.class的class文件,隨后輸入:

java Main

即可運行程序

在這里插入圖片描述

2、普通輸入輸出API

import java.util.*;
import java.io.*;

不管如何,最開頭這兩個頭文件都這樣引入即可,這兩個基本都會用到。

①、輸入API

獲取不同類型數據要使用nextXxx()的api。

示例代碼:

public static void main(String[] args) {Scanner sc = new Scanner(System.in); //用于從控制臺讀入數據//獲取int類型數據Integer a = sc.nextInt();//獲取Double類型數據Double d = sc.nextDouble();//獲取long類型數據long l = sc.nextLong();//獲取short類型數據short b = sc.nextShort();System.out.print(a + " " + d + " " + l + " " + b + " ");}

運行結果:
在這里插入圖片描述

獲取字符串需要用到兩個api:

①、in.next() 從緩沖區接收字符遇到空格后停止。 相當于 cin 和 scanf

②、in.nextLine() 從緩沖區接收字符,并且接收空格,遇到換行才停止,并且會自動舍棄換行。 相當于 gets()

    public static void main(String[] args) {Scanner sc = new Scanner(System.in); //用于從控制臺讀入數據String x = sc.next();String s = sc.nextLine();System.out.println("x: " + x);System.out.println("s: " + s);}

運行結果:
在這里插入圖片描述
可以看到next()遇到空格就會暫停,而nextLine()遇到換行就會暫停。

②、輸出API

輸出有三種形式;
System.out.print(); // 最后打印結果不會加換行

System.out.println(); // 最后打印結果加換行

System.out.printf(); // 類似c語言中的printf。

直接代碼中來看:
①、

public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.print(i + " ");}}

運行結果:

0 1 2 

②、

public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.println(i + " ");}}

運行結果:

0 
1 
2 

③、

public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.printf("%d ", i);}}

運行結果:

0 1 2 

3、快速輸入輸出API

①、BufferedReader

    public static void main(String[] args) throws Exception{BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String s = in.readLine();String[] arr = in.readLine().split(" ");System.out.println("s: " + s);System.out.print("arr: ");for (String str : arr) {System.out.print(str + " ");}}

運行結果:

在這里插入圖片描述
補充:in.read()方法返回值為Integer,用于讀取整數。

②、BufferedWriter

當數據量大的時候一定要使用這個類進行輸出,謹記!

public static void main(String[] args) throws Exception{BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int a = 68;char b = '2';String c = "3";bw.write(a);bw.write("\n");bw.write(b);bw.write("\n");bw.write(c);bw.write("\n");bw.flush();}

運行結果:

D
2
3

在輸出整型要注意,會輸出對應ASCII碼值的字符,比如ASCII碼值為68的字符是D。

解決方式:

bw.write(a + "");
bw.write(Integer.toString(a));

盡量將其轉為字符串進行輸出。
輸出結果:

68

案例

通過一道算法題,來練習熟悉一下api。

題目描述

給定你一個長度為 n的整數數列。

請你使用快速排序對這個數列按照從小到大進行排序。

并將排好序的數列按順序輸出。

輸入格式
輸入共兩行,第一行包含整數 n。

第二行包含 n個整數(所有整數均在 1~109范圍內),表示整個數列。

輸出格式
輸出共一行,包含 n個整數,表示排好序的數列。

數據范圍
1≤n≤100000

輸入樣例:
5
3 1 2 4 5
輸出樣例:
1 2 3 4 5

代碼

這里可以將new Inputstream()用new BufferedInputStream()來替代,讀取速度更快。

import java.util.*;
import java.io.*;class Main{public static void main(String[] args) throws Exception {Scanner sc = new Scanner(new BufferedInputStream(System.in));Integer n = sc.nextInt();Integer[] nums = new Integer[n + 1];for(int i = 0; i < n; i ++ ) {Integer x = sc.nextInt();nums[i] = x;}quick_sort(nums, 0, n - 1);for(int i = 0; i < n; i ++ ) {System.out.print(nums[i] + " ");}}public static void quick_sort(Integer[] nums, int l, int r) {if(l >= r) return;int mid = nums[l + r >>> 1];int i = l - 1, j = r + 1;while(i < j) {do i ++; while(nums[i] < mid);do j --; while(nums[j] > mid);if(i < j) {Integer tem = nums[i];nums[i] = nums[j];nums[j] = tem;}}quick_sort(nums, l, j); quick_sort(nums, j + 1, r);}}

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

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

相關文章

什么是移動設備管理(MDM)

移動設備管理&#xff08;MDM&#xff09;是一種安全解決方案&#xff0c;旨在監控、管理和保護企業的移動設備&#xff08;包括智能手機、平板電腦、筆記本電腦和計算機&#xff09;。MDM軟件是IT部門的關鍵工具&#xff0c;其核心功能包括設備配置、安全策略實施、遠程控制及…

c++中構造對象實例的兩種方式及其返回值

c中&#xff0c;構造對象實例有兩種方式&#xff0c;一種返回對象實例&#xff0c;一種返回該對象實例的指針。如下所示&#xff1a; 一、兩種返回值 RedisConn conn1; //得到實例conn1;RedisConn *conn2 new RedisConn();//得到指針conn2;RedisConn conn3 new RedisConn()…

【Unity筆記】PathCreator使用教程:用PathCreator實現自定義軌跡動畫與路徑控制

在Unity開發過程中&#xff0c;角色移動、攝像機動畫、軌道系統、AI巡邏等功能中&#xff0c;路徑控制是常見又復雜的需求之一。如何優雅、高效地創建路徑并控制對象沿路徑運動&#xff0c;是游戲開發、動畫制作乃至工業仿真中的關鍵問題。 在這篇文章中&#xff0c;我將介紹一…

JAVA實戰開源項目:健身房管理系統 (Vue+SpringBoot) 附源碼

本文項目編號 T 180 &#xff0c;文末自助獲取源碼 \color{red}{T180&#xff0c;文末自助獲取源碼} T180&#xff0c;文末自助獲取源碼 目錄 一、系統介紹二、數據庫設計三、配套教程3.1 啟動教程3.2 講解視頻3.3 二次開發教程 四、功能截圖五、文案資料5.1 選題背景5.2 國內…

[人機交互]交互設計過程

*一.設計 1.1什么是設計 設計是一項創新活動&#xff0c;旨在為用戶提供可用的產品 –交互設計是“設計交互式產品、以支持人們的生活和工作” 1.2設計包含的四個活動 – 識別用戶的需要&#xff08; needs &#xff09;并建立需求&#xff08; requirements &…

1. 視頻基礎知識

1. 圖像基礎概念 像素&#xff1a;像素是一個圖片的基本單位&#xff0c;pix是英語單詞picture&#xff0c;加上英語單詞“元素element”&#xff0c;就得到了pixel&#xff0c;簡稱px。所以“像素”有“圖像元素”之意。分辨率&#xff1a;指的是圖像的大小或者尺寸。比如 19…

代理IP是什么,有什么用?

一、什么是代理IP&#xff1f; 簡單理解&#xff0c;代理IP是一座橋梁——你通過它連接到目標服務器&#xff0c;而不是直接暴露自己。這里的“IP”是網絡世界中的地址標簽&#xff0c;而代理IP在運行時&#xff0c;蹦跶到臺前&#xff0c;成為目標服務器看到的那個“地址”。…

日常代碼邏輯實現

日常代碼邏輯實現&#xff1a; 1.防抖 解釋&#xff1a; 防抖是指n秒內只執行一次&#xff0c;如果n秒內事件再次觸發&#xff0c;則重新計算時間 應用場景&#xff1a; 搜索框輸入聯想&#xff08;避免每次按鍵都發送請求&#xff09;窗口尺寸調整 代碼實現&#xff1a;…

北斗導航 | RTKLib中模糊度解算詳解,公式,代碼

模糊度解算 一、模糊度解算總體流程二、核心算法與公式推導1. **雙差模糊度定義**2. **浮點解方程**三、LAMBDA算法實現細節1. **降相關變換(Z-transform)**2. **整數最小二乘搜索**3. **Ratio檢驗**四、部分模糊度固定(Partial Ambiguity Resolution, PAR)1. **子集選擇策…

基于大模型的母嬰ABO血型不合溶血病全方位預測與診療方案研究

目錄 一、引言 1.1 研究背景與目的 1.2 國內外研究現狀 1.3 研究方法與創新點 二、母嬰 ABO 血型不合溶血病概述 2.1 發病機制 2.2 臨床表現 2.3 流行病學特征 三、大模型在母嬰 ABO 血型不合溶血病預測中的應用 3.1 模型選擇與構建 3.2 預測指標與數據輸入 3.3 模…

驅動-互斥鎖

互斥鎖可以說是“量值” 為 1 的 信號量&#xff0c; 最終實現的效果相同&#xff0c; 既然有了信號量&#xff0c; 那為什么還要有互斥鎖呢&#xff1f; 這就是我們這里需要了解并掌握的 文章目錄 參考資料互斥鎖的介紹互斥鎖結構體 - mutex互斥鎖 API互斥鎖實驗源碼程序-mute…

人工智能100問?第17問:智能體的定義及其基本特征?

目錄 一、通俗解釋 二、專業解析 三、權威參考 智能體是能夠通過傳感器感知環境、自主決策并借助執行器采取行動以實現特定目標的智能實體或系統。 一、通俗解釋 智能體就像一臺能自己“看、想、動”的智能機器。比如你手機里的語音助手&#xff0c;它能聽懂你說的話&…

Linux系統入門第十一章 --Shell編程之函數與數組

一、Shell函數 1、函數的用法 Shell函數可用于存放一系列的指令。在Shell腳本執行的過程中&#xff0c;函數被置于內存中&#xff0c;每次調用函數時不需要從硬盤讀取&#xff0c;因此運行的速度比較快。在Shell編程中函數并非是必須的元素&#xff0c;但使用函數可以對程序進…

Baumer工業相機堡盟工業相機的工業視覺中為什么偏愛“黑白相機”

Baumer工業相機堡盟工業相機的工業視覺中為什么偏愛“黑白相機” Baumer工業相機?為什么偏愛“黑白相機”&#xff1f;?工業視覺中為什么傾向于多使用黑白相機黑白相機在工業視覺中的應用場景有哪些&#xff1f; Baumer工業相機 工業相機是常用與工業視覺領域的常用專業視覺…

MiM: Mask in Mask Self-SupervisedPre-Training for 3D Medical Image Analysis

Abstract Vision Transformer在3D醫學圖像分析的自監督學習&#xff08;Self-Supervised Learning&#xff0c;SSL&#xff09;中展現了卓越的性能。掩碼自編碼器&#xff08;Masked Auto-Encoder&#xff0c;MAE&#xff09;用于特征預訓練&#xff0c;可以進一步釋放ViT在各…

SQL注入的繞過方式

1.注釋與空白符繞過 利用#,--,/**/替代被過濾的注釋符 利用%09&#xff08;Tab&#xff09;,%0A(換行) &#xff0c;/**/代替空格&#xff1a;如union%0Aselect%0A1,2,3 2.編碼繞過&#xff1a; URL編碼&#xff0c;雙重編碼&#xff0c;十六進制編碼&#xff0c;Unicode編…

數據加密方式(對稱加密/非對稱加密 /數字簽名/證書)

文章目錄 數據加密方式常用加密方式對比哈希算法&#xff08;Hashing&#xff09;哈希算法的特點常見的哈希算法哈希算法的應用哈希與加密的區別哈希算法的安全性問題 對稱加密&#xff08;Symmetric Encryption&#xff09;工作原理主要特點常見的對稱加密算法優缺點 非對稱加…

UnityDots學習(五)

此篇開始研究實際應用到項目或個人Demo中。參考國外CodeMonkey的RTS包含一些基礎API應用。 前言 游戲不必100%使用Dots完全實現。因為面向組件開發一個功能復雜度和調試都比面向對象要更難。對于某些模塊&#xff0c;比如UI&#xff0c;事件管理系統&#xff0c;網絡等&#…

移動端前端開發中常用的css

在開發移動端項目的時候&#xff0c;很多樣式都是相同的&#xff0c;比如說圖標大小&#xff0c;頭像大小&#xff0c;頁面底部保存(添加按鈕&#xff09;&#xff0c;項目主體顏色等等&#xff0c;對于這些在項目中常用到的&#xff0c;通常都會寫在公共樣式中&#xff08;pub…

Vue3 中 ref 與 reactive 的區別及底層原理詳解

一、核心區別 1. 數據類型與使用場景 ? ref 可定義基本類型&#xff08;字符串、數字、布爾值&#xff09;和對象類型的響應式數據。對于對象類型&#xff0c;ref 內部會自動調用 reactive 將其轉換為響應式對象。 語法特點&#xff1a;需通過 .value 訪問或修改數據&#…