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类创建的对象调用相应的方法产生了随机数,然后,在死循环中一直需要输入数字,直到和随机数字的值相等跳出循环。