一、用户交互Scanner
我们可以通过Scanner类来获取用户的输入
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNextLine()判断是否还有输入的数据。
第一种,使用next()获取输入的字符串:
import java.util.Scanner;//导入方法
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用来接收键盘数据
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next接收
String str=scanner.next();
System.out.println("输入的内容为:"+str);
}
//属于IO流的类如果不关闭会一直占用内存资源,所以要养成好习惯用完就关掉
scanner.close();
}
}
next()不能得到带有空格的字符串,如果输入的字符串里面带有空格,将会自动去掉空格之后的内容,不会输出
第二种,使用nextLine()获取输入的字符串:
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
if (scanner.hasNextLine()){
String str=scanner.nextLine();
System.out.println("输入的内容为:"+str);
}
scanner.close();
}
}
nextLine()就可以输出带有空格的字符串
数值拆分(有关Scanner的应用)
数值拆分的公式:
下面通过代码示例:
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个3位数:");
int num = sc.nextInt();
System.out.println("数值拆分结果为:");
System.out.println(num%10);
System.out.println(num/10%10);
System.out.println(num/10/10%10);
}
}
运行结果:
请输入一个3位数:
029
数值拆分结果为:
9
2
0
字符串的拼接
在 + 操作中,遇到了字符串,这时 + 就是字符串连接符,而不是算术运算。
public class ScannerDemo02 {
public static void main(String[] args) {
System.out.println(10+20);
System.out.println(10+20+"岁的年纪已经没有头发了");
System.out.println("我的年龄是"+10+20+"岁");
}
}//请注意上述输出内容的区别:在 + 操作中,遇到了字符串,这时 + 就是字符串连接符,而不是算术运算
运行结果:
30
30岁的年纪已经没有头发了
我的年龄是1020岁
通过字符串的拼接可以优化数值拆分的输出显示:
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个3位数:");
int num = sc.nextInt();
System.out.println("数值拆分结果为:");
System.out.println("整数"+num+"的个位是"+num%10);
System.out.println("整数"+num+"的十位是"+num/10%10);
System.out.println("整数"+num+"的百位是"+num/10/10%10);
}
}
运行结果:
请输入一个3位数:
123
数值拆分结果为:
整数123的个位是3
整数123的十位是2
整数123的百位是1
二、Random 随机数
Random 可产生一个任意的随机数。
基本语法:
Random r = new Random();
产生一个10以内的随机数:
int num1 = r.nextInt(10);//产生的随机数范围是0~9,不包括10
由此可见,Random 产生的随机数范围都是从0开始的,但是如果需求是产生的随机数范围是1~10,那么可以通过如下操作实现:
int num2 = r.nextInt(10)+1;//产生的随机数范围是1~10
以此类推,如果需要产生的随机数范围是20~80,那么可以通过如下操作实现:
int num3 = r.nextInt(61)+20;//产生的随机数范围是20~80
最后,我们通过 Random 实现一个猜数字小游戏:
import java.util.Random;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
//产生一个1~100之间的随机数
int randomNumber = r.nextInt(100)+1;
while(true){
System.out.println("请输入你猜的数字:");
//接收用户输入的数字
int scNumber = sc.nextInt();
if(scNumber>randomNumber){
System.out.println("你猜大了!");
}
else if(scNumber<randomNumber){
System.out.println("你猜小了!");
}
else{
System.out.println("你猜对了!");
break;//一定要有break,以此来跳出这个死循环
}
}
}
}
运行结果为:
请输入你猜的数字:
50
你猜小了!
请输入你猜的数字:
55
你猜小了!
请输入你猜的数字:
70
你猜小了!
请输入你猜的数字:
80
你猜小了!
请输入你猜的数字:
90
你猜大了!
请输入你猜的数字:
85
你猜对了!