1、引用数据类型Scanner(Scanner类)
import java.util.*; public class Input { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.println("请输入一个正整数."); int i=reader.nextInt(); System.out.println(i); System.out.println("请输入一段字符串."); String s=reader.next(); System.out.println(s); } }
创建Scanner类的一个对象,然后调用类中的方法读取输入的数据。
2、BufferedReader类
(1)构造方法:

(2)普通方法:

import java.io.*; public class Input { public static void main(String[] args) throws IOException { String str; BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一个正整数"); str=buf.readLine(); int i=Integer.parseInt(str); System.out.println("输入的数字为"+i); } }
程序读入的数据是字符串,需要调用相应的方法进行数据类型转换

public class Test { public void str() throws IOException { BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); int i=buf.read(); System.out.println(i); } public static void main(String [] args) throws IOException { Test test=new Test(); test.str(); } }
该方法读入的是一个字符,但是返回值却是一个int型的数字,其实这反映的的ASCII表,输入的是字符,返回的是字符对应的十进制。
3、练习——猜数字游戏
(1)完整代码
import java.util.Random; import java.util.Scanner; public class GuestNumber { public static void main(String[] args) { System.out.println("猜数字开始了"); System.out.println("输入1-100之间数据"); //创建Random类变量 Random ran = new Random(); //变量.使用功能nextInt()获取1-100随机数 int ranNumber = ran.nextInt(100) + 1;//创建Scanner类变量 Scanner sc = new Scanner(System.in); while (true) { //获取键盘输入 int number = sc.nextInt(); //随机数和,用户输入的数据,比较 if (number > ranNumber) { System.out.println("猜大了"); } else if (number < ranNumber) { System.out.println("猜小了"); } else { System.out.println("中了"); break; } } } }
(2)测试结果:

(3)此练习用到了Random类和Scanner类,在进入死循环之前已经利用Random类创建的对象调用相应的方法产生了随机数,然后,在死循环中一直需要输入数字,直到和随机数字的值相等跳出循环。