在java控制台程序中的输入不像在C或其他语言那么的简单,因此很多java基础教程并没有介绍。然而它又是很重要的,尤其对于像我们这些由C或C++转java的同学,因此我想对Java的输入语句做一些探讨。当然,作为初学者的我这样做是班门弄斧,而我只是想起到抛砖引玉的作用,希望大家一起讨论,并不惜赐教!
首先,java.util.Scanner包中的Scanner(中文意思是扫描仪)类,这个类是一个final类继承于object类,从它的类名上就可以看出它有点类似于扫描仪,所以它只能扫描用户输入到屏幕上的信息,这是就需要一个System.in然后再扫描(我是这样认为的)。当然它扫描到的只是字符,但在需要时可以转换成其他类型,它提供了很多此类的方法: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) 。这些方法都可以得到相应类型的数据。例
如:
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);
}
}
这个例子就可以得到一个整型的数据。
(关于Scanner的东西还有很多,我看的还不是很清楚只知道一些简单的,更复杂的东西,请高手指点!)
再有就是这个BufferedReader类,这个类“从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取”(摘自Java帮助文档),因此它需要缓冲区。创建缓冲区的构造方法有两个:BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。类似的它读的也是字符串,需要是进行处理,即将字符串转换成整型、浮点型等类型。我见过的类型转换有Integer.parseInt()这个函数,是静态类Integer的一个方法parse的意思是解析,这样就很明白了。类似的我还见过Float.parseFloat(),举个例子吧:
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("输入一个数:");
num = Integer.parseInt(br.readLine());
System.out.print("输入一个浮点数:");
fnum = Float.parseFloat(br.readLine());
System.out.print("输出:"+st+'\n');
System.out.print("输出:"+num+'\n');
System.out.print("输出:"+fnum+'\n');
}catch(IOException e){}
}
}
还有就是运行加参数这个方法,因为我没有用DOS界面输入命令的方法所以没有用,但是听比较牛的学长说过这个方法就查了一下,也比较新颖吧,拿出来说说,因为Java的主函数是带参数的(我也见过C++的主函数带参数,但是自己搞加参数是不行,不知道为什么,知道的可以指点一下!谢谢),args[]这个字符串数组,它是可以接收数据的。当你编写好程序后,编译成字节码文件后运行时加实参【java 文件名 参数(字符串)】,这个就不举例子了。
这是我学Java时一点小小的总结,肯定有很多的纰漏希望各位能不惜赐教,谢谢大家。
本文转自 ☆★ 包罗万象网 ★☆ - http://www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/program/java/2010/0921/1569.html