Java Scanner的使用和hasNextXXX()的用法说明

目录
  • 输入输出
    • 输出
    • 输入
      • 使用Scanner读取
      • 使用Scanner循环读取N个数字/字符串
  • 关于Scanner中nextxxx()须注意的一点

输入输出

输出

基本语法

System.out.println(msg); //输出一个字符串,自带换行
System.out.print(msg); //输出一个字符串,不带换行
System.out.printf(msg); //格式化输出,和C语言相同

例如:

public class SannerDemo {
    public static void main(String[] args) {
        System.out.println("hello world!");
        System.out.print("hello world!");
        String str = "hello world";
        System.out.printf("%s\n",str);
    }
}

快捷键推荐:在这里,如果使用的是 IDEA的话,可以输入sout然后回车,会自动输出 System.out.println();

输入

使用Scanner读取

首先需要导入==import java.util.Scanner;==的包,然后 Scanner sc =new Scanner(System.in);,这段代码的主要作用是,从键盘中输入中读取数据。

然后读取数据:

next()、nextInt()和nextLIne()的区别;

import java.util.Scanner;
public class SannerDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println(i);   //读取int型的数据
        //读取一行数据
        String s1 = sc.nextLine();
        System.out.println(s1);
        //读取字符串
        String s2 = sc.next();
        System.out.println(s2);
    }

nextInt():

 		int i = sc.nextInt();
        System.out.println(i);   //读取int型的数据

可以读取数字,但是遇到空格,只能读取空格前的数字。

next():

//        //读取字符串
        String s2 = sc.next();
        System.out.println(s2);

可以读取字符串,但是遇到空格,只能读取空格前的数字。

nextLine():

  		 //读取一行数据
        String s1 = sc.nextLine();
        System.out.println(s1);

可以读取字符串,并读取这一行 ,但是遇到回车结束。

注意:

next()和nextLine()不可以同时使用:

例如:

        //读取字符串
        String s2 = sc.next();
        System.out.println(s2);
        //读取一行数据
        String s1 = sc.nextLine();
        System.out.println(s1);

这样只会输出一行,这是因为nextLine()读取了回车,然后结束。

next()遇到空客会结束。

使用Scanner循环读取N个数字/字符串

hasNextInt()的使用

import java.util.Scanner;
public class SannerDemo {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        while (sc.hasNextInt()){
            int i = sc.nextInt();//输入数字i
            System.out.println(i);//打印数字i
        }
    }

当程序开始之后,会一直循环输入并打印一个数字,知道Ctrl+d结束程序

在这里sc.hasNextInt()的结果是一个boolean的类型,当结果为false是结束。

注意:

Ctrl+d用来结束循环输入多个数据

同理:

这些方法都可以用于循环数据输入。

关于Scanner中nextxxx()须注意的一点

 public static void main(String[] args) {
        // TODO code application logic here
        Scanner s = new Scanner(System.in); 

        //需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读走回车换行"\r\n".

        //所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走整数,第二次才是读取真正的字符串
        int i = s.nextInt();
        System.out.println("读取的整数是"+ i);
        String rn = s.nextLine();//读取到的是空格
        String a = s.nextLine();//读取到的是字符串
        System.out.println("读取的字符串是:"+a);
    }

PS:nextDouble,nextFloat与nextInt是一样的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅析Java Scanner 类的用法

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

  • java hasNext()使用实例解析

    这篇文章主要介绍了java hasNext()使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"attention"字符,如果全部是数字便输出数字的和. 程序1: package mian; import java.util.Scanner; public class mian { public static void main(String[] args

  • java Scanner类的使用示例代码

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

  • Java Scanner的使用和hasNextXXX()的用法说明

    目录 输入输出 输出 输入 使用Scanner读取 使用Scanner循环读取N个数字/字符串 关于Scanner中nextxxx()须注意的一点 输入输出 输出 基本语法 System.out.println(msg); //输出一个字符串,自带换行 System.out.print(msg); //输出一个字符串,不带换行 System.out.printf(msg); //格式化输出,和C语言相同 例如: public class SannerDemo { public static vo

  • 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用法案例详解

    一.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数据结构之有效队列定义与用法示例

    本文实例讲述了Java数据结构之有效队列定义与用法.分享给大家供大家参考,具体如下: /** * @描述 有序对列 * 从任何位置插入数据都是有序的 * @项目名称 Java_DataStruct * @包名 com.java.stack * @类名 Queue * @author chenlin */ public class SequeQueue { private long[] arr; private int maxSize;// 最大空间 private int len;// 有效长度

  • Java反射机制概念、原理与用法总结

    本文实例讲述了Java反射机制概念.原理与用法.分享给大家供大家参考,具体如下: 反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 反射机制能做什么 反射机制主要提供了以下功能: ① 在运行时判断任意一个对象所属的类: ② 在运行时构造任意一个类的对象: ③ 在运行时判断任意一个类所具有的成员变量和方法: ④ 在运行时调用任意一个

  • JAVA设计模式之建造者模式原理与用法详解

    本文实例讲述了JAVA设计模式之建造者模式定义与用法.分享给大家供大家参考,具体如下: 建造者模式:将复杂对象的构造与它的实现相分离,让相同的构建过程可以创建不同的对象. 适用场合: 复杂对象的算法应该独立于该对象的组成部分或当构造过程允许被构造不同的对象时. 组成角色: 1 创建者(Builder)接口:为创建一个对象的对应部件所指定抽象接口. 2 具体创建者(ConcreteBuilder):实现Builder的接口以构造对象的各个部件. 3 具体创建者管理对象(Director):使用Bu

  • Java字符流与字节流区别与用法分析

    本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu

  • Java中volatile关键字的作用与用法详解

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机. volatile 关键字作用是,使系统中所有线程对该关键字修饰的变量共享可见,可以禁止线程的工作内存对volatile修饰的变量进行缓存. volatile 2个使用场景: 1.可见性:Java提供了volatile关键字来保证可见性. 当一个共享变量被volatile修饰时,它会保证修

随机推荐