常见对象-Scanner类

xiaoxiao2021-02-28  63

Scanner的概述和构造方法原理:

package cn.itcast_01; /* * 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) */ import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { // 创建对象 Scanner sc = new Scanner(System.in); int x = sc.nextInt(); System.out.println("x:" + x); } }

Scanner类的hasNextXxx()和nextXxx()方法:

package cn.itcast_02; import java.util.Scanner; /* * 基本格式: * public boolean hasNextXxx():判断是否是某种类型的元素 * public Xxx nextXxx():获取该元素 * * 举例:用int类型的方法举例 * public boolean hasNextInt() * public int nextInt() * * 注意: * InputMismatchException:输入的和你想要的不匹配 */ public class ScannerDemo { public static void main(String[] args) { // 创建对象 Scanner sc = new Scanner(System.in); // 获取数据 if (sc.hasNextInt()) { int x = sc.nextInt(); System.out.println("x:" + x); } else { System.out.println("你输入的数据有误"); } } } Scanner获取数据出现的小问题及解决方案:

package cn.itcast_03; import java.util.Scanner; /* * 常用的两个方法: * public int nextInt():获取一个int类型的值 * public String nextLine():获取一个String类型的值 * * 出现问题了: * 先获取一个数值,在获取一个字符串,会出现问题。 * 主要原因:就是那个换行符号的问题。 * 如何解决呢? * A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。 * B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。后面会学到把字符串转换成其他类型。 */ public class ScannerDemo { public static void main(String[] args) { // 创建对象 Scanner sc = new Scanner(System.in); // 获取两个int类型的值 // int a = sc.nextInt(); // int b = sc.nextInt(); // System.out.println("a:" + a + ",b:" + b); // 获取两个String类型的值 // String s1 = sc.nextLine(); // String s2 = sc.nextLine(); // System.out.println("s1:" + s1 + ",s2:" + s2); // 先获取一个字符串,再获取一个int值 // String s1 = sc.nextLine(); // int b = sc.nextInt(); // System.out.println("s1:" + s1 + ",b:" + b); // 先获取一个int值,再获取一个字符串。先获取一个数值,在获取一个字符串,会出现问题 // int a = sc.nextInt(); // String s2 = sc.nextLine(); // System.out.println("a:" + a + ",s2:" + s2); int a = sc.nextInt(); Scanner sc2 = new Scanner(System.in); String s = sc2.nextLine(); System.out.println("a:" + a + ",s:" + s); } }

转载请注明原文地址: https://www.6miu.com/read-74480.html

最新回复(0)