首页 > 编程 > Java > 正文

Java Scanner类用法及nextLine()产生的换行符问题实例分析

2019-11-26 09:11:08
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表