轉(zhuǎn)帖|其它|編輯:郝浩|2010-09-21 11:42:18.000|閱讀 773 次
概述:在java控制臺(tái)程序中的輸入不像在C或其他語言那么的簡單,因此很多java基礎(chǔ)教程并沒有介紹。然而它又是很重要的,尤其對于像我們這些由C或C++轉(zhuǎn)java的同學(xué),因此我想對Java的輸入語句做一些探討。當(dāng)然,作為初學(xué)者的我這樣做是班門弄斧,而我只是想起到拋磚引玉的作用,希望大家一起討論,并不惜賜教!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在java控制臺(tái)程序中的輸入不像在C或其他語言那么的簡單,因此很多java基礎(chǔ)教程并沒有介紹。然而它又是很重要的,尤其對于像我們這些由C或C++轉(zhuǎn)java的同學(xué),因此我想對Java的輸入語句做一些探討。當(dāng)然,作為初學(xué)者的我這樣做是班門弄斧,而我只是想起到拋磚引玉的作用,希望大家一起討論,并不惜賜教!
首先,java.util.Scanner包中的Scanner(中文意思是掃描儀)類,這個(gè)類是一個(gè)final類繼承于object類,從它的類名上就可以看出它有點(diǎn)類似于掃描儀,所以它只能掃描用戶輸入到屏幕上的信息,這是就需要一個(gè)System.in然后再掃描(我是這樣認(rèn)為的)。當(dāng)然它掃描到的只是字符,但在需要時(shí)可以轉(zhuǎn)換成其他類型,它提供了很多此類的方法:String next()、 BigDecimal nextBigDecimal() 、BigInteger nextBigInteger() 、BigInteger nextBigInteger(int radix) 、 boolean nextBoolean() 、byte nextByte() 、 byte nextByte(int radix) 、double nextDouble() 、float nextFloat() 、int nextInt() 、int nextInt(int radix) 、 String nextLine() 、long nextLong() 、long nextLong(int radix) 、short nextShort() 、short nextShort(int radix) 。這些方法都可以得到相應(yīng)類型的數(shù)據(jù)。例
如:
import java.util.Scanner;
public class Importtext {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println(i);
}
}
這個(gè)例子就可以得到一個(gè)整型的數(shù)據(jù)。
(關(guān)于Scanner的東西還有很多,我看的還不是很清楚只知道一些簡單的,更復(fù)雜的東西,請高手指點(diǎn)!)
再有就是這個(gè)BufferedReader類,這個(gè)類“從字符輸入流中讀取文本,緩沖各個(gè)字符,從而提供字符、數(shù)組和行的高效讀取”,因此它需要緩沖區(qū)。創(chuàng)建緩沖區(qū)的構(gòu)造方法有兩個(gè):BufferedReader(Reader in) 創(chuàng)建一個(gè)使用默認(rèn)大小輸入緩沖區(qū)的緩沖字符輸入流。BufferedReader(Reader in, int sz) 創(chuàng)建一個(gè)使用指定大小輸入緩沖區(qū)的緩沖字符輸入流。類似的它讀的也是字符串,需要是進(jìn)行處理,即將字符串轉(zhuǎn)換成整型、浮點(diǎn)型等類型。我見過的類型轉(zhuǎn)換有Integer.parseInt()這個(gè)函數(shù),是靜態(tài)類Integer的一個(gè)方法parse的意思是解析,這樣就很明白了。類似的我還見過Float.parseFloat(),舉個(gè)例子吧:
import java.io.*;
public class importtext {
public static void main(String[] args) {
String st;
int num;
float fnum;
try{
System.out.print("輸入:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
st = br.readLine();
System.out.print("輸入一個(gè)數(shù):");
num = Integer.parseInt(br.readLine());
System.out.print("輸入一個(gè)浮點(diǎn)數(shù):");
fnum = Float.parseFloat(br.readLine());
System.out.print("輸出:"+st+'\n');
System.out.print("輸出:"+num+'\n');
System.out.print("輸出:"+fnum+'\n');
}catch(IOException e){}
}
}
還有就是運(yùn)行加參數(shù)這個(gè)方法,因?yàn)槲覜]有用DOS界面輸入命令的方法所以沒有用,但是聽比較牛的學(xué)長說過這個(gè)方法就查了一下,也比較新穎吧,拿出來說說,因?yàn)镴ava的主函數(shù)是帶參數(shù)的(我也見過C++的主函數(shù)帶參數(shù),但是自己搞加參數(shù)是不行,不知道為什么,知道的可以指點(diǎn)一下!謝謝),args[]這個(gè)字符串?dāng)?shù)組,它是可以接收數(shù)據(jù)的。當(dāng)你編寫好程序后,編譯成字節(jié)碼文件后運(yùn)行時(shí)加實(shí)參【java 文件名 參數(shù)(字符串)】,這個(gè)就不舉例子了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載