对于Java的初学者来说,比较难的就是要记住Java的两种不同的键盘输入方法,而程序设计中经常需要从键盘上读取数据。下面对两种不同的方法做介绍:
1、第一种输入方式
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
String str; //声明str为String类型变量
InputStreamReader inp; //声明inp为InputStreamReader类的变量,该类在java.io.*中
inp=new InputStreamReader(System.in); //创建inp对象
BufferedReader buf; //声明buf为BufferedReader类的变量,该类在java.io.*中
buf=new BufferedReader(inp); //创建buf对象
str=buf.readLine(); //用readLine()方法读入字符串存入str中,且须处理IOException异常
}
}
复制代码
或者可以写成
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
String str; //声明str为String类型变量
BufferedReader buf; //声明buf为BufferedReader类的变量,该类在java.io.*中
buf=new BufferedReader(new InputStreamReader(System.in)); //创建buf对象
str=buf.readLine(); //用readLine()方法读入字符串存入str中,且须处理IOException异常
}
}
复制代码
显然第二种写法要精简许多
【要点】
(1)须处理IOException异常,即要在函数后加上throws IOException;
(2)用readLine();格式的键盘输入数据,不管是文字还是数据,皆视为字符串,因此要由键盘输入数值则需要利用以下方法进行相应的转换。
转换的方法
Byte.parseByte(String s) //字符串转字节型数据
Short.parseShort(String s) //字符串转短整型数据
Integer.parseInt(String s) //字符串转整型数据
Long.parseLong(String s) //字符串转长整型数据
Float.parseFloat(String s) //字符串转浮点型数据
Double.parseDouble(String s) //字符串转双精度型数据
Boolean.parseBoolean(String s) //字符串转布尔型数据
举例:字符串转浮点型数据
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
float num;
String str;
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个实数:");
str=buf.readLine();
num=Float.parseFloat(str);
System.out.println("您输入的实数为:"+num);
}
}
复制代码
运行结果:
请输入一个实数:32.58
您输入的实数为:32.58
复制代码
(3)需要输入多个数据时,仅需定义多个变量保存readLine()方法获得的字符串即可。如:
float num1,num2;
String str1,str2;
...
str1=buf.readLine();
num1=Float.parseFloat(str1);
str2=buf.readLine();
num2=Float.parseFloat(str2);
复制代码
2、第二种输入方式
在java.util库中增设了一个专门用于输入操作的类Scanner。语句格式如下:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner reader=new Scanner(System.in);
double num;
num=reader.nextDouble();
}
}
复制代码
类似的读取调用函数还有:nextByte()、nextDouble()、nextFloat()、nextInt()、nextLong()、nextShort()、next()和nextLine()。
其中next()方法一定要读取到有效字符才可以结束输入,有效字符前的空格、Tab或者回车都会被自动去掉,只有在有效字符输入了之后,才会将空格、Tab或者回车当作为结束输入。
而nextLine()是能将回车作为结束输入。