本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题。分享给大家供大家参考,具体如下:
分析理解:Scanner sc = new Scanner(System.in);
package cn.itcast_01; /* * Scanner:用于接收键盘录入数据。 * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * 分析理解:Scanner sc = new Scanner(System.in); * 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类的hasNextInt()和nextInt()方法
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类中的nextLine()产生的换行符问题
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); // System.out.println("-------------------"); // 获取两个String类型的值 // String s1 = sc.nextLine(); // String s2 = sc.nextLine(); // System.out.println("s1:" + s1 + ",s2:" + s2); // System.out.println("-------------------"); // 先获取一个字符串,在获取一个int值 // String s1 = sc.nextLine(); // int b = sc.nextInt(); // System.out.println("s1:" + s1 + ",b:" + b); // System.out.println("-------------------"); // 先获取一个int值,在获取一个字符串,这里会出问题 // int a = sc.nextInt(); // String s2 = sc.nextLine(); // System.out.println("a:" + a + ",s2:" + s2); // System.out.println("-------------------"); int a = sc.nextInt(); Scanner sc2 = new Scanner(System.in); String s = sc2.nextLine(); System.out.println("a:" + a + ",s:" + s); } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
问题内容: 我正在尝试创建一个程序,在该程序中,用户可以使用扫描仪将值输入到数组中。 但是,当程序要求学生的近亲时,它不会让用户输入任何内容而直接结束程序。 下面是我完成的代码: 我试过使用next(); 但只会使用用户输入的第一个单词,这不是我想要的。反正有解决这个问题的方法吗? 问题答案: 当您按Enter键(换行符)时,会出现问题。仅使用整数,但跳过换行符。要解决此问题,您可能需要在阅读后添
本文向大家介绍php中分页及SqlHelper类用法实例,包括了php中分页及SqlHelper类用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中分页及SqlHelper类用法。分享给大家供大家参考,具体如下: 文档目录结构如下: SqlHelper.php代码如下: Paging.php代码如下: paging-list-link.css代码如下: usePaging.p
本文向大家介绍MySQL死锁问题分析及解决方法实例详解,包括了MySQL死锁问题分析及解决方法实例详解的使用技巧和注意事项,需要的朋友参考一下 MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1、MySQL常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-level lo
每一个通用的版本控制系统,无论是CVS、Subversion、Git或是其他,都要面对换行符转换的问题。这是因为作为通用的版本控制系统要面对来自不同操作系统的文件,而不同的操作系统在处理文本文件时,可能使用不同的换行符。 不同的操作系统可能使用不同的换行符 文本文件的每一行结尾用一个或者两个特殊的ASCII字符进行标识,这个标识就是换行符。主要的换行符有三种:LF(Line Feed即换行,C语言
我有两个do-while循环用于进行自定义输入验证。问题是它会自动进入下一个do while循环。正确插入名称后,我必须放置一个新的下一行():name=scanner。nextLine() 我知道当光标停留在那里时,nextLine()会出现“小故障”,您必须调用nextLine()才能继续。资料来源:https://www.geeksforgeeks.org/why-is-scanner-sk
本文向大家介绍Android判断服务是否运行及定位问题实例分析,包括了Android判断服务是否运行及定位问题实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android判断服务是否运行及定位问题。分享给大家供大家参考。具体如下: 在android开发中,经常会使用locationManager.getLastKnownLocation()定时获取经纬度,在不同真机测试中有的可以