常见对象(Scanner的概述和方法介绍)
* A:Scanner的概述
* B:Scanner的构造方法原理
* Scanner(InputStream source)
* System类下有一个静态的字段:
* public static final InputStream in; 标准的输入流,对应着键盘录入。
* C:一般方法
* hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。
如果需要判断是否包含下一个字符串,则可以省略Xxx
* nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符
常见对象(Scanner获取数据出现的小问题及解决方案)
* A:两个常用的方法:
* public int nextInt():获取一个int类型的值
* public String nextLine():获取一个String类型的值
* B:案例演示
* a:先演示获取多个int值,多个String值的情况
* b:再演示先获取int值,然后获取String值出现问题
* c:问题解决方案
* 第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
* 第二种:把所有的数据都先按照字符串获取,然后要什么,就对应的转换为什么。(后续)
代码:
package org.ks.常见对象.Scanner; import java.util.Scanner; public class Demo_Scanner { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //创建键盘录入对象,使用的构造方法是:Scanner(InputStream source) if(sc.hasNextInt()) { int i = sc.nextInt(); //从键盘录入一个整数 System.out.println(i); }else { System.out.println("输入类型错误"); } } }
package org.ks.常见对象.Scanner; import java.util.Scanner; /* *常见对象(Scanner获取数据出现的小问题及解决方案)(掌握) * A:两个常用的方法: * public int nextInt():获取一个int类型的值 * public String nextLine():获取一个String类型的值 * B:案例演示 * a:先演示获取多个int值,多个String值的情况 * b:再演示先获取int值,然后获取String值出现问题 * c:问题解决方案 * 第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。 * 第二种:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。(后面讲) */ public class Demo2_Scanner { /** * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); /* System.out.println("请输入第一个整数:"); int i = sc.nextInt(); System.out.println("请输入第二个整数:"); int j = sc.nextInt(); System.out.println("i = " + i + "j = " + j); System.out.println("请输入第一个字符串:"); String line1 = sc.nextLine(); System.out.println("请输入第二个字符串:"); String line2 = sc.nextLine(); System.out.println("line1 = " + line1 + "line2 = " + line2); */ /* * nextInt()是键盘录入整数的方法,当录入10的时候 * 其实在键盘上录入的是 10 和 \r\t ,nextInt()方法只获取了10就结束了; * nextLine()是键盘录入字符串的方法,可以接收任意类型,但只要遇到 \r\n就结束 */ /* System.out.println("请输入一个整数:"); int i = sc.nextInt(); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); System.out.println("i = " + i + "," + "line = " + line); // i = 10,line = */ /* * 解决方法: * 1.创建两次对象,但是浪费空间 * 2.键盘录入的都是字符串,都用nextLine()方法,后面学习将整数字符串转成整数的方法 */ int i = sc.nextInt(); Scanner sc1 = new Scanner(System.in); String Line = sc1.nextLine(); System.out.println(i); System.out.println(Line); } }