* Scanner:用于接收键盘录入数据。
* System类下有一个静态的字段:
* public static final InputStream in; 标准的输入流,对应着键盘录入。
*
* InputStream is = System.in;
*
* class Demo {
* public static final int x = 10;
* public static final Student s = new Student();
* }
* int y = Demo.x;
* Student s = Demo.s;
*
*
* 构造方法:
* Scanner(InputStream source)
* System类下有一个静态的字段:
* public static final InputStream in; 标准的输入流,对应着键盘录入。
*
* InputStream is = System.in;
*
* class Demo {
* public static final int x = 10;
* public static final Student s = new Student();
* }
* int y = Demo.x;
* Student s = Demo.s;
*
*
* 构造方法:
* Scanner(InputStream source)
1 public class ScannerDemo { 2 public static void main(String[] args) { 3 // 创建对象 4 Scanner sc = new Scanner(System.in); 5 6 int x = sc.nextInt(); 7 8 System.out.println("x:" + x); 9 } 10 }
* 基本格式:
* public boolean hasNextXxx():判断是否是某种类型的元素
* public Xxx nextXxx():获取该元素
*
* 举例:用int类型的方法举例
* public boolean hasNextInt()
* public int nextInt()
*
* 注意:
* InputMismatchException:输入的和你想要的不匹配
1 public class ScannerDemo { 2 public static void main(String[] args) { 3 // 创建对象 4 Scanner sc = new Scanner(System.in); 5 6 // 获取数据 7 if (sc.hasNextInt()) { 8 int x = sc.nextInt(); 9 System.out.println("x:" + x); 10 } else { 11 System.out.println("你输入的数据有误"); 12 } 13 } 14 }
/*
* 常用的两个方法:
* public int nextInt():获取一个int类型的值
* public String nextLine():获取一个String类型的值
*
* 出现问题了:
* 先获取一个数值,在获取一个字符串,会出现问题。
* 主要原因:就是那个换行符号的问题。
* 如何解决呢?
* A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
* B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
*/
1 public class ScannerDemo { 2 public static void main(String[] args) { 3 // 创建对象 4 Scanner sc = new Scanner(System.in); 5 6 // 获取两个int类型的值 7 // int a = sc.nextInt(); 8 // int b = sc.nextInt(); 9 // System.out.println("a:" + a + ",b:" + b); 10 // System.out.println("-------------------"); 11 12 // 获取两个String类型的值 13 // String s1 = sc.nextLine(); 14 // String s2 = sc.nextLine(); 15 // System.out.println("s1:" + s1 + ",s2:" + s2); 16 // System.out.println("-------------------"); 17 18 // 先获取一个字符串,在获取一个int值 19 // String s1 = sc.nextLine(); 20 // int b = sc.nextInt(); 21 // System.out.println("s1:" + s1 + ",b:" + b); 22 // System.out.println("-------------------"); 23 24 // 先获取一个int值,在获取一个字符串 25 // int a = sc.nextInt(); 26 // String s2 = sc.nextLine(); 27 // System.out.println("a:" + a + ",s2:" + s2); 28 // System.out.println("-------------------"); 29 30 int a = sc.nextInt(); 31 Scanner sc2 = new Scanner(System.in); 32 String s = sc2.nextLine(); 33 System.out.println("a:" + a + ",s:" + s); 34 } 35 }