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

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

(0)

相关推荐

  • sonar-scanner连接sonarquebe7的sonar.java.binaries问题的解决方案

    Sonar-Scanner连接新版SonarQube7提示org.sonar.squidbridge.api.AnalysisException,暂定将sonar-java-plugin降到4.10恢复正常使用. 现象描述 以一下版本Sonar-Scanner连接SonarQube进行Maven项目的代码检测,没有任何问题. Sonar-Scanner命令 使用命令sonar-scanner,使用-D传入以下参数 问题描述 在仅仅升级了SonarQube到7.0之后,使用同样的sonar-sca

  • 浅析Java常用API(Scanner,Random)匿名对象

    API:即Application programming Interface,应用编程接口. Java中封装了许许多多的API供用户使用,Scanner与Random便是其中之一,API实际就是类,已经封装好了Scanner类,Random类,我们只需按照其语法编写即可,无需了解其根本源代码 Scanner类: 1.使用Scanner类需导入其所在包,import java.util.Scanner或import java.util.*(前者是导入util中的Scanner类,后者是导入util

  • Java使用Scanner类获取用户输入实例详解

    创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); Scanner 类的 next() 方法 import java.util.Scanner; class Test{ public static void main(String[] args){ String s; Scanner userInput = new Scanner(System.in); System.out.print("Input String: ");

  • java Scanner输入数字、字符串过程解析

    Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringTokenizer和Matcher类之间的某种结合.由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析.借助于Scanner,可以针对任何要处理的

  • Java Scanner 类的使用小结

    在笔试编程过程中,关于数据的读取如果迷迷糊糊,那后来的编程即使想法很对,实现很好,也是徒劳,于是在这里认真总结了Java Scanner 类的使用 通过 Scanner 类来获取用户的输入,下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); // 从键盘接收数据 接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext

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

    本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题.分享给大家供大家参考,具体如下: 分析理解:Scanner sc = new Scanner(System.in); package cn.itcast_01; /* * Scanner:用于接收键盘录入数据. * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * 分析理解:Scanner sc = new Scanner(System.in); * System类下有一个静态的字段:

  • java编程scanner类用法示例

    在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析.借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器.

  • 浅析Java Scanner 类的用法

    java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据: 使用 next 方法: import ja

  • java Scanner类的使用示例代码

    Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringTokenizer和Matcher类之间的某种结合.由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析.借助于Scanner,可以针对任何要处理的

  • Java枚举类用法实例

    本文实例讲述了Java枚举类用法.分享给大家供大家参考.具体如下: package com.school.stereotype; /** * 活动枚举类型 * @author QiXuan.Chen */ public enum EventStatus { /** * 未发布. */ DRAFT("DRAFT", "未发布"), /** * 已发布. */ PUBLISHED("PUBLISHED", "已发布"); /**

  • Java System类用法实战案例

    本文实例讲述了Java System类用法.分享给大家供大家参考,具体如下: 一 使用System类访问系统属性 1 代码 import java.util.Map; public class SystemClassDemo { public static void main(String[] args) { Map<String, String> env = System.getenv(); // 获得系统的环境变量 for (String name : env.keySet()) { Sy

  • Java Scanner类的使用示例

    1 Scanner的使用 JDK给我们提供了成千上万个类供我们直接使用,而Scanner就是这众多类里的一个最常用的一个类,既然它是一个类,我们使用它的方法和使用我们自己写的类的方法基本一致. 方法基本如下: 1.导包:就是指出需要使用的类在哪一个位置,格式一般为import 包名称.类名称,Scanner导包语句便为import java.util.Scanner对于和当前类属于同一个包的时候,导包语句可以不写,JDK里提供的类仅仅只有java.lang下的类不需要导包. 2.创建:按照格式创

  • Java String类用法详解

    一.简介 零碎知识点 extends Object implements serializable,Comparable< String >,charSequence String类表示字符串,所有字符串文字都是此类的对象 字符串是不变的,值在创建后无法更改 对象一旦声明则不可改变,改变的只是地址,原来的字符串还是存在的,并且产生垃圾 任何一个""都为字符串对象,无赋值则为匿名对象 用"+"拼接字符串尽量避免,一般用append+toString Str

  • Java BigDecimal类用法详解

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象,我们不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法.方法中的参数也必须是BigDe

随机推荐