Scanner 对象

Scanner 对象

  • Java给我们提供了一个工具类Scanner可以让我们获取到用户的输入。

  • 导包:java.until.Scanner

  • 基本语法

    Scanner s=new Scanner(System.in);
    

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

next()

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

import java.util.Scanner;

public class ShiYan {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner=new Scanner(System.in);//创建一个扫描器用来检测用户输入没有
		
		
		System.out.println("用hasNext方法来接收用户输入了什么");
		System.out.println("请输入内容:");
		
		if (scanner.hasNext()) //判断用户输入了没有
		{
			String str=scanner.next();
			//使用next方法接收
			System.out.println("输出的内容为:"+str);
		}
		
		scanner.close();
		//凡是io流的东西,用完之后一定要记得关闭。这是程序员的好习惯
	}

}

nextLine()

  1. 以Enter为结束符,也就是说nextline()方法返回的是输入回车之前所有的字符。
  2. 可以获得空白的东西。
package ShiYan;

import java.util.Scanner;

public class ShiYan {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner=new Scanner(System.in);//创建一个扫描器用来检测用户输入没有
		
		
		System.out.println("用hasNext方法来接收用户输入了什么");
		System.out.println("请输入内容:");
		
		
		String str=scanner.nextLine();
		//使用nextLine方法接收,就可以接收空格内容了,但是要注意哦!nextline()是可以接收空格的哦!就比如你直接输入空格就是空格哦!
		System.out.println("输出的内容为:"+str);
	
		
		scanner.close();
		//凡是io流的东西,用完之后一定要记得关闭。这是程序员的好习惯
	}

}

拓展

hasNext()有各种各样的基本数据类型的判断哦!

例如:

public static void main(String[] args) {
		// TODO Auto-generated method stub

		int i=0;
		float f= 0.0F;
		Scanner scanner=new Scanner(System.in);//创建一个扫描器用来检测用户输入没有
		System.out.println("请输入一个整数:");
		
		
		if (scanner.hasNextInt()) //判断用户输入了没有
		{
			String str=scanner.next();
			//使用next方法接收
			System.out.println("输出的数字为:"+str);
		}
		else {
			System.out.println("输入的数字不为整数");
		}
		System.out.println("请输入一个小数:");
		if (scanner.hasNextFloat()) //判断用户输入了没有
		{
			String str=scanner.next();
			//使用next方法接收
			System.out.println("输出的小数为:"+str);
		}
		else {
			System.out.println("输入数字不为小数");
		}
		scanner.close();
		//凡是io流的东西,用完之后一定要记得关闭。这是程序员的好习惯
	}

每个基本数据类型类型都有对应的hasNext()检测方法。

作业

写一串代码判断输入多个整数的平均值,当输入非整数时,输出结果。


	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int a=0;
		double mean=0.0D;
		int sum=0;
		Scanner scanner=new Scanner(System.in);
		System.out.println("该算术可以判断输入多个整数的平均值,当输入非整数时输出结果");
		System.out.println("请输入整数数字:");
		while (scanner.hasNextInt()) //判断是否是整数型
		{
			int x=scanner.nextInt();
			a+=1;//a=a+1;
			sum+=x;//sum=sum+x;
		}
		mean=(double)sum/a;//计算平均值,不要忘了如果计算是优先之前的数据类型哦,这里需要强制转换一下。
		System.out.println("你输入的数字和为:"+sum);
		System.out.println("平均值为:"+mean);
		
		scanner.close();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值