文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

输入输出

输出

基本语法


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是一样的

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯