一、Java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。
实例程序:
1、利用 Scanner 实现从键盘读入integer或float 型数据
import java.util.*;
public class A {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("请输入一个float数:");
//nextFloat()方法表示将输入按float类型扫描
float f=in.nextFloat();
System.out.println("这个float数是:"+f);
//在输入字符串时,如果中间有空格符(空格键、Tab键、Enter键),则后面的输入无效
System.out.print("请输入一个字符串:");
//next()方法表示输入按字符串扫描
String s=in.next();
System.out.println("这个字符串是:"+s);
//nextInt()表示循环将输入按整数扫描
for(int i=0;i<4;i++)
{
System.out.print("请输入一个int数:");
int b=in.nextInt();
System.out.println("这个int数是:"+b);
}
in.close();
}
}
二、用 BufferedReader实现以字符串形式从键盘读入两个数,并比较大小
import java.io.*; //引入IO流包
public class Compare
{
public static void main(String[] args)
{
try{
//输入流,从键盘接收数
InputStreamReader isr=new InputStreamReader(System.in); //System.in代表标准输入
BufferedReader br=new BufferedReader(isr);
//给出提示
System.out.println("请输入第一个数");
//从控制台读取一行数据
String a1=br.readLine();
System.out.println("请输入第二个数");
String a2=br.readLine();
//把String转成float
float num1=Float.parseFloat(a1);
float num2=Float.parseFloat(a2);
if(num1>num2)
{
System.out.println("第一个数大");
}
if(num1==num2)
{
System.out.println("相等");
}
if(num1<num2)
{
System.out.println("第二个数大");
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
三、
关于Scanner类的说明
如果你要使用Scanner取得用户输入的话,要加上 import java.util.Scanner;这条语句。使用该类创建一个对象,需要用System.in
作为它的参数,即Scanner reader=new Scanner(System.in); 然后reader对象调用下列方法读取用户在命令行输入的各种数据类
型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLong(),nextShot()
Scanner类中提供了多个方法:
next():取得一个字符串;
nextInt():将取得的字符串转换成int类型的整数;
nextFloat():将取得的字符串转换成float型;
nextBoolean():将取得的字符串转换成boolean型;
用Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键
时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们
可以考虑使用BufferedReader类取得输入。
关于BufferedReader类的说明
BufferedReader类位于java.io包中,所以要使用这个类,就要引入java.io这个包:
使用BufferedReader对象的readLine()方法必须处理Exception异常。
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String text = buffer.readLine(); readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.