(JAVA)从键盘输入

(JAVA) 从键盘输入数据

🐧从键盘输入数据

我们会遇到需要用户从键盘上输入数据的情况。这时候就需要一个接收的功能,的确,这是已经写好的。只需要我们会调用就行。

🦉方式一

(主要用作了解)

示例:

import java.io.*;

public class test {
    public static void main(String[] args) throws IOException {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String str = buf.readLine();
        System.out.println(str);
    }
}

在这里插入图片描述
分析:(简述)

  1. import是一个关键字,作用是导入包。

    这里可以从c语言中的#include<stdio.h>来理解,

    import相当于include

    java.io.*相当于stdio.h

  2. BufferedReaderInputStreamReaderjava.io.*中已经写好的类,

    这里的的概念,可以先理解为自定义的类型。

    由名字可以看出他们都是与io流相关的,

    input输入流和output输出流。

  3. 无论是System.in还是new InputStreamReader()

    都是传入的参数,这在方法定义时已经确定了要传入参数的类型。

    就相当于c语言中函数的参数在定义的时候就已经确定的。

  4. System.in为标准输入流,默认设备是键盘

    System.out为标准输出流,默认设备是显示器

  5. buf.readLine(),作用是读取一行数据,

    然后是从你规定的System.in标准输入流中,即键盘上读取。

    .调用readLine()方法,

    返回你从键盘读取的字符串,再赋值到str

  6. throws IOException是将可能发生的输入输出异常抛出。

拓展:

由于readLine()的返回类型是String
所以当你想读一个int型的数字或一个char类型字符时
就需要用到强制类型转换。

int a = Integer.parseInt(buf.readLine());
char b = buf.readLine().charAt(0);

在这里插入图片描述

当输入一个数字105后需要按enter,结束这一行的输入,再输入C

如果输入105 C中间用空格隔开,会出现错误,因为readLine()方法如其名,会读取一行的数据,这时字符串为105 C在进行Integer.parseInt()时,就会出现异常,空格和C无法转为int型的数据。

🦆方式二

为了简化输入操作,从java SE 5版本开始,新增了一个专门用于输入操作的类Scanner

示例:

import java.util.Scanner;

public class test {
    public static void main(String[] args)   {
        Scanner sca = new Scanner(System.in);

        int a = sca.nextInt();
        double b = sca.nextDouble();
        System.out.println(a);
        System.out.println(b);
    }
}

在这里插入图片描述
分析:

  1. import引入的是java.util包下的Scanner

    也可以写成import java.util.*;,

    区别是后者是引入java.util包下 的所有内容

  2. System.in作为创建一个Scanner对象时传入的参数,

    作用是:可以从标准输入设备(键盘)中读取数据

  3. sca.nextInt()是调用sca对象相应的方法,

    用于读取一个int型的数据,并返回。

  4. 其中sca是一个Scanner对象的变量名,实际上是一个引用

    通过sca可以访问Scanner类里的方法

拓展:

  1. 方法特点
    nextInt()读取一个整型数(int)
    nextByte()读取一个字节型数(byte)
    nextShort()读取一个短整型数(short)
    nextFloat()读取一个单精度浮点型数(float)
    nextDouble()读取一个双精度浮点型数(double)
    next()读取一个字符串(String)
  2. String s = sca.next();
    

    在这里插入图片描述
    当一串字符中有空格时,会发现next()只会读取第一个空格前的部分,然后赋值给s

    方法特点
    nextLine()读取一个行的数据(String)
    String s = sca.nextLine();
    

    在这里插入图片描述
    nextLine()将回车前的数据都转化为字符串

  3.  char c = sca.next().charAt(0);
    

    没有nextChar()这个方法,如果需要输入得到一个字符的话,

    方法是输入一个只有一个字符的字符串,并且得到那个字符。
    在这里插入图片描述

下一篇更精彩:(JAVA)转跳控制语句

  • 25
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值