Scanner类常用方法

java中的Scanner类用于读取用户输入,类似于C++中的std::cin,但Scanner类对于不同的数据类型提供了不同的输入方式,在此做个记录。

在使用前,需要先实例化Scanner对象,Scanner对象包含于java.util包下

package java.util;

import java.nio.file.Path;
import java.nio.file.Files;
import java.util.regex.*;
import java.io.*;
import java.math.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;
import java.text.*;
import java.util.Locale;

import sun.misc.LRUCache;

public final class Scanner implements Iterator<String>, Closeable{
    
    }

从Scanner类的定义中,实现了Iterator和Closeable接口,简要记录Iterator就是迭代器接口,在java的集合中使用较多,而Closeable接口则是可以实现自动关闭的接口,后面有时间会再将这两个接口解析一下。

public class MyScanner {
    
    
    public static void main(String[] args) {
    
    
    	//实例化Scanner类
        java.util.Scanner s = new java.util.Scanner(System.in);

        //Scanner使用next方法默认输入字符串,但无法输入包含空格的字符串
        String text = s.next();
        System.out.println(text);
    }
}

输入结果如下:
在这里插入图片描述
可以使用nextLine()方法输入带有空格的字符串:

        //输入包含空格的字符串
        String str = s.nextLine();
        System.out.println(str);

运行结果如下:
在这里插入图片描述

这段代码中实例化了一个Scanner类,并使用系统输入作为参数,读入字节输入流,方法原型如下:

    public Scanner(InputStream source) {
    
    }

另外还可以对其指定字符编码格式:

    public Scanner(InputStream source, String charsetName) {
    
    }

输入整数

        int integer = s.nextInt();
        System.out.println(integer);

使用nextInt()方法可以输入int形整数,默认十进制,可以使用radix()方法查看Scanner的进制。若想使用其他进制,则也可以自己使用userRadix设定进制:

        java.util.Scanner s = new java.util.Scanner(System.in);
        //默认十进制
        System.out.println("初始进制:" + s.radix());
        //设置为十六进制
        s.useRadix(16);
        System.out.println("调整后进制:" + s.radix());

        //输入整数
        int integer = s.nextInt();
        //设置为10进制并输出输入的16进制数
        s.useRadix(10);
        System.out.println("调整进制:" + s.radix());
        System.out.println("十进制数:" + integer);

输入显示的结果如下:
在这里插入图片描述

同样的也提供了对于short等其他类型的输入方法:

	public short nextShort() {
    
    }

	public long nextLong() {
    
    }
    
    public double nextDouble() {
    
    }
    
    public float nextFloat() {
    
    }

	//对于大数也提供了BigInteger的输入
	public BigInteger nextBigInteger() {
    
    }

	//对于BigDecimal类型也提供了相应的输入方式
	public BigDecimal nextBigDecimal(){
    
    }

日拱一卒,功不唐捐。

猜你喜欢

转载自blog.csdn.net/qq_45132647/article/details/121446800