键盘的输入流

键盘的输入流


通过键盘输入

  • 首先我们需要 import java.util.Scanner; 放在程序的开头(类声明的前面)

  • 再把 Scanner stdI(这里为 i 的大写)n = new Scanner(System.in) ; 放在 main 方法的开头(进行下面的读入操作)

  • 最后用 stdI(这里为 i 的大写)n.nextInt 获取通过键盘输入的整数值

    有
    stdIn.nextBoolean(); // 读入布尔类型值
    stdIn.nextByte(); // 读入字节类型值
    stdIn.nextShort(); // 读入短整型值
    stdIn.nextInt(); // 读入整数类型值
    stdIn.nextLong(); // 读入长整型值
    stdIn.nextDouble(); // 读入双精度浮点型值
    stdIn.nextFloat(); // 读入单精度浮点型值
    stdIn.next(); // 读入字符串值
    stdIn.nextLine(); // 读入字符串值
    
    
  • 注意,一定要输入对应的类型的值,不要输入不对应的数值,不然会出错


代码1;

import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 { 
	public static void main (String[] args) {
		Scanner stdIn = new Scanner (System.in); // 放在main 方法的开头(进行为下面读入的操作)

		long num = stdIn.nextLong(); // 获取通过键盘输入的长整型值
		System.out.print("请输入long类型的值: ");
		System.out.println("num= "+num);
	}
}

结果1:

在这里插入图片描述


解析1:

  • 这里我故意输入错误不对应的类型,本应该输入 long 类型的数值我却输入了一个 字符型值 “好”,
  • 结果报错的,因为Java是一种强类型的语言,所以输入的值,一定要输入相对应的类型的数值才行,不然编译不过去的,而C语言可以只是报一个警告,可以编译过去的。更加体现了 Java 的安全性,以及强类型语言;

代码2

import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 { 
	public static void main (String[] args) {
	Scanner stdIn = new Scanner(System.in); // 放在main方法的开头(进行下面的读入的操作)

	boolean boolVariate = stdIn.nextBoolean();
	System.out.println("boolVariate= "+boolVariate);

	byte byteVariate = stdIn.nextByte();
	System.out.println("byteVariate= "+byteVariate);

	short shortVariate = stdIn.nextShort();
	System.out.println("shortVariate= "+shortVariate);

	int intVariate = stdIn.nextInt();
	System.out.println("intVariate= "+intVariate);

	long longVariate = stdIn.nextLong();
	System.out.println("longVariate= "+longVariate);

	float floatVariate = stdIn.nextFloat();
	System.out.println("floatVariate= "+floatVariate);

	double doubleVariate = stdIn.nextDouble();
	System.out.println("doubleVariate= "+doubleVariate);
        
    }
}


结果2:

在这里插入图片描述

字符串的读入

  • stdIn(注意这里是 i 字母的大写).next ()

    stdIn(注意这里是 i 字母的大写).nextLine ()

  • 我们来探究他们的不同点:

stdIn(注意这里是 i 字母的大写).next() 的探究

代码

import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 { 
	public static void main (String[] args) {
		Scanner stdIn = new Scanner (System.in); // 放在main 方法的开头(进行下面的读入的操作)
	   /*对字符中的stdIn.next()的探究*/
	   System.out.print("请输入:");
	   String str = stdIn.next(); // 获取键盘中字符串
	   System.out.println("你输入的是:"+str);

	}
}


结果:

在这里插入图片描述


解析:

  • 上述代码我们输入一串字符 你好 世界 ,中间加了一个空格,结果我们输出的不是完整的字符串,而是输出空格之前的字符 你好
  • 这里我们就可以看出,使用next() 读入通过键盘输入的字符串时,空白字符(也就是空格)和制表符会被视为字符串的分隔符。因此,只会读取空格之前的字符数据;

stdIn(注意这里是 i 字母的大写).nextLine()的探究

代码:

import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 { 
	public static void main (String[] args) {
		Scanner stdIn = new Scanner (System.in); // 放在 main 方法的开头(进行下面的读入的操作)
		/*对字符串stdIn.nextLine()的探究*/
		System.out.print("请输入:");
		String str = stdIn.nextLine(); // 获取键盘中的字符串
		System.out.println("输入的是:"+str);
	}
}


结果:

在这里插入图片描述


解析:

  • 上述代码我们输入了 字符 你好 世界 ,输出了完整的字符数据 你好 世界

  • 这里我们明显发现它们的不同了,nextLine() 它可以读取到空格,next() 不能读取到空格


最后:

限于自身的水平问题,其中存在的错误,希望各位大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值