溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何獲取鍵盤輸入值

發(fā)布時(shí)間:2020-06-21 13:40:29 來(lái)源:億速云 閱讀:188 作者:元一 欄目:編程語(yǔ)言

Java程序開(kāi)發(fā)過(guò)程中,需要從鍵盤獲取輸入值是常有的事,但Java它偏偏就沒(méi)有像c語(yǔ)言給我們提供的scanf(),C++給我們提供的cin()獲取鍵盤輸入值的現(xiàn)成函數(shù)!Java沒(méi)有提供這樣的函數(shù)也不代表遇到這種情況我們就束手無(wú)策。

請(qǐng)你看以下三種解決方法吧:

以下將列出幾種方法:

方法一:從控制臺(tái)接收一個(gè)字符,然后將其打印出來(lái)

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

雖然此方式實(shí)現(xiàn)了從鍵盤獲取輸入的字符,但是System.out.read()只能針對(duì)一個(gè)字符的獲取,同時(shí),獲取進(jìn)來(lái)的變量的類型只能是char,當(dāng)我們輸入一個(gè)數(shù)字,希望得到的也是一個(gè)整型變量的時(shí)候,我們還得修改其中的變量類型,這樣就顯得比較麻煩。

方法二:從控制臺(tái)接收一個(gè)字符串,然后將其打印出來(lái)。 在這個(gè)題目中,我們需要用到BufferedReader類和InputStreamReader類

import java.io.*;
public static void main(String [] args) throws IOException{ 
           BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
           String str = null; 
           System.out.println("Enter your value:"); 
           str = br.readLine(); 
           System.out.println("your value is :"+str); 
}

這樣我們就能獲取我們輸入的字符串。

方法三:這種方法我認(rèn)為是最簡(jiǎn)單,最強(qiáng)大的,就是用Scanner類

import java.util.Scanner;
public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("請(qǐng)輸入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("請(qǐng)輸入你的年齡:"); 
         int age = sc.nextInt(); 
         System.out.println("請(qǐng)輸入你的工資:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary); 
}

這段代碼已經(jīng)表明,Scanner類不管是對(duì)于字符串還是整型數(shù)據(jù)或者float類型的變量,只需做一點(diǎn)小小的改變,就能夠?qū)崿F(xiàn)功能!無(wú)疑他是最強(qiáng)大的!

但是,在使用第三種輸入方法的時(shí)候有一個(gè)需要注意的地方,就是nextLine()函數(shù),在io包中有一個(gè)和他功能一樣的函數(shù)我next()函數(shù),他們的功能一樣,但是在實(shí)現(xiàn)上有什么差別呢,請(qǐng)看下面代碼:

public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("請(qǐng)輸入你的年齡:"); 
         int age = sc.nextInt(); 
         System.out.println("請(qǐng)輸入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("請(qǐng)輸入你的工資:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary); 
}

方法四:使用System.in.read。

例如:

public static void main(String  args[]) throws IOException{

  System.out.print("請(qǐng)輸入:");

  char i = (char) System.in.read();

  System.out.println(" aaa:"+i);

}

方法五:使用BufferedReader。

例如:

public static void main(String  args[]) throws IOException{

  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  String str = null;

  System.out.println("請(qǐng)輸入:");

  str = br.readLine();

  System.out.println("aaaa :"+str);

}

以上就是java中怎么獲取輸入?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI