- 論壇徽章:
- 0
|
Scanner是SDK1.5新增的一個(gè)類,可是使用該類創(chuàng)建一個(gè)對(duì)象.
Scanner reader=new Scanner(System.in);
然后reader對(duì)象調(diào)用下列方法(函數(shù)),讀取用戶在命令行輸入的各種數(shù)據(jù)類型:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
上述方法執(zhí)行時(shí)都會(huì)造成堵塞,等待用戶在命令行輸入數(shù)據(jù)回車確認(rèn).例如,擁護(hù)在鍵盤(pán)輸入
12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用戶輸入一個(gè)文
本行并且回車,該方法得到一個(gè)String類型的數(shù)據(jù)。
下面是一個(gè)實(shí)例:
import java.util.*;
public class Example{
public static void main(String args[]){
System.out.println("請(qǐng)輸入若干個(gè)數(shù),每輸入一個(gè)數(shù)用回車確認(rèn)");
System.out.println("最后輸入一個(gè)非數(shù)字結(jié)束輸入操作");
Scanner reader=new Scanner(System.in);
double sum=0;
int m=0;
while(reader.hasNextDouble()){
double x=reader.nextDouble();
m=m+1;
sum=sum+x;
}
System.out.printf("%d個(gè)數(shù)的和為%f\n",m,sum);
System.out.printf("%d個(gè)數(shù)的平均值是%f\n",m,sum/m);
}
}
運(yùn)行結(jié)果:
C:\java>java Example請(qǐng)輸入若干個(gè)數(shù),每輸入一個(gè)數(shù)用回車確認(rèn)最后輸入一個(gè)非數(shù)字結(jié)束輸入操作34.13445d3個(gè)數(shù)的和為113.1000003個(gè)數(shù)的平均值是37.700000
C:\java>另一個(gè)例子,讀取并分析文本文件:hrinfo.txt,文本文件的內(nèi)容如下:老趙,28,feb-01,true小竹,22,dec-03,false阿波,21,dec-03,false凱子,25,dec-03,true 程序: import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class readhuman {
private static void readfile(String filename) {
try {
Scanner scanner = new Scanner(new File(filename));
scanner.useDelimiter(System.getProperty("line.separator"));
while (scanner.hasNext()) {
parseline(scanner.next());
}
scanner.close();
}catch (FileNotFoundException e) {
System.out.println(e);
}
}
private static void parseline(String line) {
Scanner linescanner = new Scanner(line);
linescanner.useDelimiter(",");
//可以修改usedelimiter參數(shù)以讀取不同分隔符分隔的內(nèi)容
String name = linescanner.next();
int age = linescanner.nextInt();
String idate = linescanner.next();
boolean iscertified = linescanner.nextBoolean();
System.out.println("姓名:"+name+" ,年齡:"+ age+" ,入司時(shí)間:"+ idate+" ,驗(yàn)證標(biāo)記:"+iscertified );
}
public static void main(String[] args) {
if (args.length != 1) {
System.err.println("usage: java readhuman file location");
System.exit(0);
}
readfile(args[0]);
}
}
運(yùn)行結(jié)果:C:\java>java readhuman hrinfo.txt姓名:老趙 ,年齡:28 ,入司時(shí)間:feb-01 ,驗(yàn)證標(biāo)記:true姓名:小竹 ,年齡:22 ,入司時(shí)間:dec-03 ,驗(yàn)證標(biāo)記:false姓名:阿波 ,年齡:21 ,入司時(shí)間:dec-03 ,驗(yàn)證標(biāo)記:false姓名:凱子 ,年齡:25 ,入司時(shí)間:dec-03 ,驗(yàn)證標(biāo)記:true |
|