欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-02 20:00:08
目录输入输出输出输入使用scanner读取使用scanner循环读取n个数字/字符串关于scanner中nextxxx()须注意的一点输入输出输出基本语法system.out.println(msg)...

输入输出

输出

基本语法

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);
    }
}

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

快捷键推荐:在这里,如果使用的是 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型的数据

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

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

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

next():

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

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

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

nextline():

  		 //读取一行数据
        string s1 = sc.nextline();
        system.out.println(s1);

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

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

注意:

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

例如:

        //读取字符串
        string s2 = sc.next();
        system.out.println(s2);
        //读取一行数据
        string s1 = sc.nextline();
        system.out.println(s1);

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

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

next()遇到空客会结束。

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

使用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
        }        
    }

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

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

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

注意:

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

同理:

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

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

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

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