Java獲取控制臺輸入的兩種方法小結(jié)
更新時間:2022年11月19日 08:45:20 作者:我想脫離小碼農(nóng)
這篇文章主要介紹了Java獲取控制臺輸入的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
Java獲取控制臺輸入的方法
在學習網(wǎng)絡編程中,有需要從控制臺輸入數(shù)據(jù),進行兩個線程之間的通信,其中,涉及到了讀取控制臺輸入的兩種不同的操作,筆者在這里進行記錄,以供大家分享。
方法一、InputStreamReader
- 本身只能單個字符地讀取數(shù)據(jù)
- 通過BufferedStreamReader包裝后,存在緩存,支持整行整行地讀取數(shù)據(jù)
- 只能讀取字符/字符串,如想獲取其他類型的數(shù)據(jù),仍需要進行類型轉(zhuǎn)換
檢測實例如下:
? ? public static User getUser2() throws IOException { ? ? ? ? BufferedReader br = new ? ? ? ? ? ? ? ? BufferedReader(new InputStreamReader(System.in)); ? ? ? ? System.out.println("請輸入賬號"); ? ? ? ? String username = br.readLine(); ? ? ? ? System.out.println("請輸入密碼"); ? ? ? ? String password = br.readLine(); ? ? ? ? br.close(); ? ? ? ? return new User(username,password); ? ? }
方法二、Scanner
在獲取控制臺輸入的方法中,創(chuàng)建Scanner對象來獲取是最佳的方法,其有以下優(yōu)勢:
- 可以獲取各種類型的數(shù)據(jù),如String、Int、Float等,且不需要進行轉(zhuǎn)換
- 支持諸多的文本掃描內(nèi)容,如hasNextLine()方法可以檢測是否存在下一行數(shù)據(jù)等
檢測實例如下:
? ? public static User getUser(){ ? ? ? ? Scanner scanner = new Scanner(System.in); ? ? ? ? System.out.println("請輸入賬號"); ? ? ? ? String username = scanner.nextLine(); ? ? ? ? System.out.println("請輸入密碼"); ? ? ? ? String password = scanner.nextLine(); ? ? ? ? return new User(username,password); ? ? }
Java接收控制臺輸入
1.接收整數(shù)類型輸入
public static void main(String[] args) { java.util.Scanner sc=new Scanner(System.in); ?? ??? ?System.out.println("請輸入將要計算階乘的整數(shù)n:"); ?? ??? ?int n=sc.nextInt(); //接收整數(shù)類型輸入 ?? ??? ?sc.close(); }
2.接收字符串類型輸入
public static void main(String[] args) { ?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in); ?? ??? ?System.out.println("請輸入需要判斷是否為十進制的數(shù)字"); ?? ??? ?String n=sc.nextLine();//接收字符串 ?? ??? ?sc.close(); }
3.接收單個字符輸入
法一》直接獲取一個字符
?public static void main(String[] args) throws Exception //注意拋出異常? { ?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in); ?? ??? ?System.out.println("請輸入一個字符:"); ?? ??? ? ?? ??? ? char n=(char)System.in.read(); //直接獲取一個字符 ? ? ? ? ?sc.close(); }
法二》先接收一個字符串,再接收其第一個字符
public static void main(String[] args) ?//注意 throws Exception可以不寫 { ?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in); ?? ??? ?System.out.println("請輸入一個字符:"); ?? ??? ?char n=sc.next().charAt(0);//先從控制臺接收字符串,再接收它的第一個字符 ?? ??? ?sc.close(); }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java自定義注解實現(xiàn)前后臺參數(shù)校驗的實例
下面小編就為大家?guī)硪黄猨ava自定義注解實現(xiàn)前后臺參數(shù)校驗的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11