java输入Scanner基本用法[通俗易懂]

java输入Scanner基本用法[通俗易懂]1.基本介绍java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入,每个next获取输入对应的字符。Scannersc=newScanner(System.in);当我们通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext与hasNextLine判断是否还有输入的数据:next()–>hasNext() nextLine()–…

大家好,又见面了,我是你们的朋友全栈君。

1.基本介绍

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,每个next获取输入对应的字符。

Scanner sc = new Scanner(System.in);

当我们通过 Scanner 类的 next()  nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用hasNext 与 hasNextLine 判断是否还有输入的数据

  • next() –>hasNext()
  • nextLine() —->hasNextLine()

2.使用举例 

hasNext和next测试

public static  void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner.hasNext())
            System.out.println("输出:"+scanner.next());
        scanner.close();
    }
请输入:
测试一下   哈哈
输出:测试一下

hasNextLine和nextLine

public static  void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner.hasNextLine())
            System.out.println("输出:"+scanner.nextLine());
        scanner.close();
    }
请输入:
测试一下   哈哈哈
输出:测试一下   哈哈哈

两者比较:

很明显,从结果来看,next获取下一个字符串,输入间隔为空格或回车时阶段,而nextLine则是获取一行数据。

next():

  • 一定要读取到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 以Enter为结束符,也就是说 nextLine()方法返回输入回车之前的所有字符
  • 可以获得空白。
     

3.常用方式

scanner.nextLine().trim();//去掉输入两端的空格
String[] arrStr = scanner.nextLine().trim().split(" ");//将输入的一行按照空格拆分为数组


while (scanner.hasNextLine()){
            int len = Integer.parseInt(scanner.nextLine().trim());
            int[] arrInt = new int[len];
            String[] contentStr = scanner.nextLine().trim().split(" ");
            int i =0;
            for (String content:contentStr){
                arrInt[i++] = Integer.parseInt(content);
            }
    System.exit(0);
}

其他的获取输入方式:

hasNext()—-next()

hasNextInt()—-nextInt()

hasNextBoolean—-nextBoolean()

hasNextByte()—-nextByte()

hasNextShort()—-nextShort()

hasNextInt()—-nextInt()

hasNextLong()—-nextLong()

hasNextFloat()—-nextFloat()

hasNextDouble()—-nextDouble()

hasNextBigInteger()—-nextBigInteger()

hasNextBigDecimal()—-nextBigDecimal()

4.while循环输入scanner如何退出?

以下三种退出方式:

while (!scanner.hasNext("0") ){
//标志位退出
}
  while (scanner.hasNextLine() ){
//            代码段
            if(scanner.hasNext("0"))//内部标志退出
                break;
        }
  while (scanner.hasNextLine() ){
        //    代码段
           System.exit(0);//系统退出

        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156448.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webservice实例java_Java WebService(实战) 简单实例

    webservice实例java_Java WebService(实战) 简单实例一、准备工作(以下为本实例使用工具)1、MyEclipse10.7.12、JDK1.6.0_22二、创建服务端1、创建【WebServiceProject】,命名为【TheService】。2、创建【Class】类,命名为【ServiceHello】,位于【com.hyan.service】包下。3、编写供客户端调用的方法,即编译方法代码。4、进行编译说明:编译失败的话,请将该项目引用的jd…

    2022年7月21日
    14
  • 碟刹和V刹的区别「建议收藏」

    碟刹和V刹的区别「建议收藏」0首先拍死的一个观点就是碟刹比V刹要好,要高档──似乎大部分对于运动自行车陌生新手往往认为碟刹一定比V刹要好,我们听到过这样的话:“都2000多的车了,还没有碟刹”───这样的话真的让人哭笑不得,看看不论是国外的比赛还是国内的专业比赛,如果是晴天的比赛,V刹车还是占了大部分的,当然目前也有碟刹车增多的趋势,但是对于大部分休闲骑行和不参加业余级别比赛的车友的来说,V刹尤其是好些的V刹还是够用的,…

    2022年10月2日
    5
  • dll反编译(反编译加密dll)

    DLLtoC反编译工具,它可以将DLL转换成可编译的C/C++代码。当您丢失DLL的源代码时,您可以用DLLtoC。能够把DLL转换回可编译的代码。并且具有生成数据结构和反汇编代码段的功能。和其它的反编译或反汇编工具最大的不同是:它生成的代码是可以直接编译运行的。它可以为所有数据段生成数据结构并拆解代码段。它还可以生成函数关系树,然后可以方便地导出DLL中所需的指定特征。它可以将汇编代码…

    2022年4月12日
    757
  • 使用MATLAB绘制分段函数实现[通俗易懂]

    使用MATLAB绘制分段函数实现[通俗易懂]绘制分段函数也是很常见的需求,实现分段函数的绘制也有多种方式。以下面分段函数为例,进行说明。方法一:直接根据分段函数的含义,根据x值的不同,相对应的函数值也不同,进行描点连线。x=0:0.1:5y=[]forxx=xif(xx<1.5)y=[y,0];elseif(xx>=1.5&&xx<2)y=[y,(xx-1.5)*2];elsey=[y,1];endendplot(x,y)%函数图像上加一

    2022年6月12日
    33
  • 进程间的六种通信方式

    进程间的六种通信方式概述每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。进程间通信目的一般有共享数据,数据传输,消息通知,进程控制等。以Unix/Linux为例,介绍几种重要的进程间通信方式:管道、消息队列、共享内存、信号量、信号、Socket。六种通信方式管道如果你学过Linux命令,那你肯定很熟悉|这个竖线。$psauxf|grepmysql上面命令行里的|竖线就是一个管道,它的功能是将前一.

    2022年10月11日
    3
  • iOS App 主题切换

    iOS App 主题切换

    2021年6月7日
    363

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号