Scanner的使用
实现用户数据的交互,用户通过终端输入数据
注意:使用Scanner需要导包
import java.util.Scanner;
- -next();//读取用户输入的字符串数据
- -nextLine();//读取用户输入的一行数据 以换行符(回车)作为分隔
- -nextInt();//读取用户输入的int整型数据 ,需要注意输入的数据类型要匹配;InputMismatchException输入的数据类型不匹配
- -nextDouble();//读取用户输入的double浮点型数据
注意:如果在nextLine();操作前使用了nextInt();nextDouble();等方法,nextLine()方法会读取到上面方法所输入的换行符。
//修改默认的结束符
scanner.useDelimiter(";");
import java.util.Scanner;
// Scanner键盘输入类、IO流输入
public class ScannerDemo{
public static void main(String[] args){
// 创建Scanner对象
Scanner sc = new Scanner(System.in);
sc.useDelimiter(";");// 分隔符 默认的分隔符是回车符
System.out.println("请输入数字:");
// 读取数据 next方法会使得程序阻塞[等待]
String input = sc.next();
int num = sc.nextInt();// nextLine当上面有nextXXX方法是会读取该方法的回
车符 避免这种情况可以使用next方法
System.out.println("读到num:"+num);
System.out.println("请输入信息:");
String intput = sc.next();
// String intput1 = sc.nextLine();// 用于比较
System.out.println("读到信息:"+input);
// 当你输入的字符串为a123时就会出现 编译报错:java.util.InputMismatchException
// 因为这里程序使用的是nextInt类型 所以要输入整数型的数据
}
}
}
}
-- 练习:
public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入当前年份:");
String year = sc.next();
System.out.println("请输入当前月份");
String month = sc.next();
System.out.println("请输入当前日期");
String day = sc.nextLine();
System.out.println("当前是"+year+"年"+month+"月"+day+"日");
// 判断是否有约
System.out.println("今晚是否有约?"[1][2]);
int isdate = sc.Intnext();//
String isdate1 = isdate ==1?"今晚有约":"今晚没有约";
System.out.println(isdate1);
}
}
※字面值和变量值不一样.
- Java中的变量必须先声明再赋值才能访问,赋值时才会开辟内存空间。
要求:字面值的数据类型和变量的数据类型一致。
- ※字面值是数据,字面值包括字符串型、整数型、浮点型、布尔型、字符型。eg:13.14,"abc",'A',true,false,100等等。
- ※变量值从本质上来说是内存中的一块空间,这块空间有“数据类型”,有“名字”,有“字面值”。因此,变量包含三部分:数据类型、名称、字面值