java中Scanner輸入用法實(shí)例
因?yàn)樯婕暗?io 流輸入問(wèn)題,如果不關(guān)閉會(huì)一直占用資源。所以使用過(guò)后要及時(shí)關(guān)閉,防止資源一直被占用。
Scanner在使用前要導(dǎo)入 java.util.Scanner 包
1.整數(shù)
描述:
輸入一個(gè)整數(shù),輸出這個(gè)整數(shù)。
輸入描述:
輸入一個(gè)整數(shù),范圍在32位有符號(hào)整數(shù)范圍內(nèi)
輸出描述:
輸出這個(gè)整數(shù)
代碼
nextInt() 方法是將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè) int。
hasNext()如果此掃描器的輸入中有另一個(gè)標(biāo)記,則返回 true。在等待要掃描的輸入時(shí),此方法可能阻塞。掃描器將不執(zhí)行任何輸入。 如果仍有元素可以迭代,則返回 true。
import java.util.Scanner; public class Main{ public static void main(String[] args){ // System.out.println("請(qǐng)輸入一個(gè)整數(shù)"); Scanner sc = new Scanner(System.in); int nume = sc.nextInt(); System.out.println(nume); } }
代碼優(yōu)化:
import java.util.Scanner; public class Main{ public static void main(String[] args){ // System.out.println("請(qǐng)輸入一個(gè)整數(shù)"); Scanner sc = new Scanner(System.in); if(sc.hasNext()){ int nume = sc.nextInt(); System.out.println(nume); } sc.close(); } }
2.浮點(diǎn)數(shù)
描述
輸入一個(gè)浮點(diǎn)數(shù),輸出這個(gè)浮點(diǎn)數(shù)。
輸入描述:
輸入一個(gè)浮點(diǎn)數(shù)
輸出描述:
輸出一個(gè)浮點(diǎn)數(shù),保留三位小數(shù)
代碼
%.3f 浮點(diǎn)型輸出,保留三位小數(shù)
nextFloat() 將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè) float。
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); if(sc.hasNext()){ float nume = sc.nextFloat(); //如何限制float的位數(shù),String類中的format方法可以解決這個(gè)問(wèn)題 System.out.println(String.format("%.3f",nume)); } sc.close(); } }
3.字符
描述
輸入一個(gè)字符,輸出這個(gè)字符。
輸入描述:
輸入一個(gè)字符,范圍在ascii范圍內(nèi)
輸出描述:
輸出這個(gè)字符
代碼
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); if(sc.hasNext()){ String in = sc.nextLine(); System.out.println(in); } sc.close(); } }
4.輸入兩個(gè)整數(shù)
描述
從鍵盤(pán)上輸入三個(gè)整數(shù),并嘗試在屏幕上顯示第二個(gè)整數(shù)。
輸入描述:
一行輸入 3 個(gè)整數(shù),用空格隔開(kāi)。
輸出描述:
請(qǐng)輸出第二個(gè)整數(shù)的值。
代碼
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int[] arr=new int[3]; if(sc.hasNext()){ for(int i = 0; i < 3; i++){ arr[i] = sc.nextInt(); } System.out.println(arr[1]); } sc.close(); } }
5.字符矩陣
描述
用鍵盤(pán)讀入一個(gè)字符,然后在屏幕上顯示用這個(gè)字符組成的 33 的矩形。
輸入描述:
一行讀入一個(gè) char 類型的字符。
輸出描述:
輸出這個(gè)字符組成的 33 矩形。
代碼
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); //輸入單字符,sc.next().charAt(0); if(sc.hasNext()){ char in = sc.next().charAt(0); for(int i = 0 ; i < 3 ; i++){ for(int j = 0 ; j < 3 ; j++){ System.out.print(in); } System.out.println(); } } sc.close(); } }
6.字符菱形
描述
牛用鍵盤(pán)讀入一個(gè)字符,然后在屏幕上顯示一個(gè)用這個(gè)字符填充的對(duì)角線長(zhǎng)5個(gè)字符,傾斜放置的菱形。
輸入描述:
輸入一個(gè)char類型字符
輸出描述:
輸出一個(gè)用這個(gè)字符填充的對(duì)角線長(zhǎng)5個(gè)字符,傾斜放置的菱形
代碼
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); char in = sc.next().charAt(0); //上部分的行數(shù),包括對(duì)角線 int n = 3; //循環(huán)輸出前半部分 for(int i = 1 ; i <= n; i++){ //輸出每行前面的空格,并逐級(jí)減少,第一行兩個(gè),第二行一個(gè),第三行0個(gè) for(int j = 1; j <= n - i; j++){ System.out.print(" "); } //每行輸出的字符個(gè)數(shù)是改行的2倍健1,2*i-1 for(int j = 1; j <= 2 * i - 1;j++){ System.out.print(in); } //每行的結(jié)尾要換行 System.out.println(); } //循環(huán)輸出后半部分 int m = n - 1;//后半部分的行數(shù)是前半部分行數(shù)減1,m=2 for(int i = 1; i <= m; i++){ //i=1時(shí),是第四行,打印1個(gè)空格,3個(gè)字符 //i=2時(shí),是第五行,打印0個(gè)空格,1字符個(gè) //輸出空格 for(int j = 1; j <= i; j++){ System.out.print(" "); } for(int j = 1; j <= 2*(m-i)+1 ; j++){ System.out.print(in); } System.out.println(); } } }
7.字符轉(zhuǎn) ASCII 碼
描述
輸入一個(gè)字符,輸出該字符相應(yīng)的ASCII碼。
輸入描述:
一行,一個(gè)字符。
輸出描述:
一行,輸出輸入字符對(duì)應(yīng)的ASCII碼。
代碼
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); if(sc.hasNext()){ char in = sc.next().charAt(0); System.out.println((int)in); } sc.close(); } }
8.實(shí)現(xiàn)四舍五入
描述
將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)類型,要求四舍五入。
輸入描述:
隨機(jī)輸入的浮點(diǎn)數(shù)
輸出描述:
四舍五入之后的整數(shù)
代碼
round(float a)
返回最接近參數(shù)的 int。
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); if(sc.hasNextDouble()){ double in = sc.nextDouble(); System.out.println(Math.round(in)); } sc.close(); } }
9.成績(jī)輸入輸出
描述
輸入3科成績(jī),然后把三科成績(jī)輸出,成績(jī)?yōu)檎麛?shù)形式。
輸入描述:
一行,3科成績(jī),用空格分隔,范圍(0~100)。
輸出描述:
一行,把3科成績(jī)顯示出來(lái),輸出格式詳見(jiàn)輸出樣
代碼
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int[] arr = new int[3]; if(sc.hasNext()){ for(int i = 0; i < arr.length; i++){ arr[i] = sc.nextInt(); } System.out.println("score1="+arr[0]+",score2="+arr[1]+",score3="+arr[2]); } sc.close(); } }
10.學(xué)生基本信息輸入輸出
描述
依次輸入一個(gè)學(xué)生的學(xué)號(hào),以及3科(C語(yǔ)言,數(shù)學(xué),英語(yǔ))成績(jī),在屏幕上輸出該學(xué)生的學(xué)號(hào),3科成績(jī)(注:輸出成績(jī)時(shí)需進(jìn)行四舍五入且保留2位小數(shù))。
數(shù)據(jù)范圍:學(xué)號(hào)滿足 1<= n <=20000000 ,各科成績(jī)使用百分制,且不可能出現(xiàn)負(fù)數(shù)
輸入描述:
學(xué)號(hào)以及3科成績(jī),學(xué)號(hào)和成績(jī)之間用英文分號(hào)隔開(kāi),成績(jī)之間用英文逗號(hào)隔開(kāi)。
輸出描述:
學(xué)號(hào),3科成績(jī),輸出格式詳見(jiàn)輸出樣例。
代碼
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); String nume = in.nextLine(); String[] id = nume.split(";"); String score = id[1]; String[] scores = score.split(","); System.out.print("The each subject score of No. "+Integer.parseInt(id[0])+ " is " + String.format("%.2f",Float.parseFloat(scores[0]))+ ", " + String.format("%.2f",Float.parseFloat(scores[1])) + ", " + String.format("%.2f",Float.parseFloat(scores[2])) + "." ); in.close(); } }
11.按照格式輸入并交換輸出
描述
輸入兩個(gè)整數(shù),范圍-2的31次方~2的31次方-1,交換兩個(gè)數(shù)并輸出。
輸入描述:
輸入只有一行,按照格式輸入兩個(gè)整數(shù),范圍,中間用“,”分隔。
輸出描述:
把兩個(gè)整數(shù)按格式輸出,中間用“,”分隔。
代碼
nextLine() 接收 String 類型的輸入
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String twoNums = sc.nextLine(); String[] nums = twoNums.split(","); System.out.println(nums[0].substring(0,2) + nums[1].substring(2) + "," + nums[1].substring(0,2) + nums[0].substring(2)); sc.close(); } }
12.大小寫(xiě)轉(zhuǎn)換
描述
實(shí)現(xiàn)字母的大小寫(xiě)轉(zhuǎn)換。多組輸入輸出。
輸入描述:
多組輸入,每一行輸入大寫(xiě)字母。
輸出描述:
針對(duì)每組輸入輸出對(duì)應(yīng)的小寫(xiě)字母
代碼
public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){//表示是否有輸入數(shù)據(jù) char num = sc.next().charAt(0); System.out.println((char)(num+32)); } } }
總結(jié)
到此這篇關(guān)于java中Scanner輸入用法的文章就介紹到這了,更多相關(guān)java Scanner輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java編程技巧:if-else優(yōu)化實(shí)踐總結(jié)歸納
這篇文章主要介紹了Java中避免過(guò)多if-else的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2021-06-06spring?IOC容器的Bean管理XML自動(dòng)裝配過(guò)程
這篇文章主要為大家介紹了spring?IOC容器Bean管理基于XML的自動(dòng)裝配過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java的Hibernate框架中用于操作數(shù)據(jù)庫(kù)的HQL語(yǔ)句講解
這篇文章主要介紹了Java的Hibernate框架中用于操作數(shù)據(jù)庫(kù)的HQL語(yǔ)句講解,Hibernate是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2016-01-01基于struts2和hibernate實(shí)現(xiàn)登錄和注冊(cè)功能
這篇文章主要為大家詳細(xì)介紹了基于struts2和hibernate實(shí)現(xiàn)登錄和注冊(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Spring?boot?RedisTemplate?序列化服務(wù)化配置方式
這篇文章主要介紹了Springboot?RedisTemplate序列化服務(wù)化配置方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼
這篇文章給大家介紹了SpringBoot使用classfinal-maven-plugin插件加密Jar包的實(shí)例,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02