Scanner 主要用于键盘录入,使用时需要用import java.util.Scanner;导入
如果扫描数据类型和输入的数据类型不匹配会出现InputMismatatchException错误
1、将录入的字符转换为int型
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
2、将录入的字符转化为float型
Scanner sc = new Scanner(System.in);
float s = sc.nextFloat();
如果输入的数字不是规定的 float 类型而是整形 int ,数字会自动进行类型转换,比如输入10,会输出10.0,不会报错,反过来不可以。
3、将输入的字符转化为boolean型
Scanner sc = new Scanner(System.in);
boolean s = sc.nextBoolean();
4、录入字符串
空格问题
next() : 遇到了空格, 就不再录入数据了 , 结束标记: 空格, tab键
nextLine() : 可以将数据完整的接收过来 , 结束标记: 回车换行符
因此执行完next()换行的时候nextLine()会直接跳过,解决方法中间写一个next()接收换行
import java.util.Scanner;
public class Democanner {
/*
nextInt和nextLine方法配合使用的时候, nextLine方法就没有键盘录入的机会了
建议: 今后键盘录入数据的时候, 如果是字符串和整数一起接受, 建议使用next方法接受字符串.
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数:");
int num = sc.nextInt(); // 输入数字 + 回车换行
sc.nextLine();//使用这句话接受上面的换行符,保证下面字符串正常录入
System.out.println("请输入:");// 调用nextLine方法接收字符串
String s = sc.nextLine();
System.out.println(num);
System.out.println(s);
}
}