Java基础-----Scanner的概述和方法介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84558685
Scanner的概述
Scanner的构造方法原理

Scanner(InputStream source),System类下有一个静态字段:
public static final InputStream in;标准的输入流,对应着键盘录入。

一般方法

1、hasNextXxx()判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx。
2、nextXxx()获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分割符。

循环输入代码如下:

package java基础;

import java.util.Scanner;

public class Demo_Scanner {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		while (scan.hasNextInt()) {
			int b = scan.nextInt();
			System.out.println(b);
		}
	}
}
常用的两个方法

1、public int nextInt():获取一个int类型的值。
2、public String nextLine():获取一个String类型的值。

先获取int值,然后获取String值出现问题。

package java基础;

import java.util.Scanner;

public class Demo1_Scanner {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int b = scan.nextInt();
		String line = scan.nextLine();
		System.out.println(b);
		System.out.println(line);
		
	}
}

出现问题的原因:
nextInt()是键盘录入整数的方法,当我们录入数值的时候其实在键盘上录入的是数值和\r\n,nextInt()方法只能获取10就结束了,nextLine()是键盘录入字符串的方法,可以接收任意类型,但是遇到\r\n就会结束获取键盘录入的数据。

该问题的解决方案:
(1)先获取一个数值后,在创建一个新的键盘录入对象多去字符串,这样做比较浪费空间。
(2)键盘录入的都是字符串,都用nextLine方法,然后将第一个字符串转化成数值。

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84558685
今日推荐