Java 接受键盘输入数据的方法

在写 Java 程序过程中,尤其是在做面试题的过程中,需要用到 java 的 io 模块。今天算是总结一下 java 在 接受键盘输入输出这一块。

1) System.in.read() 接受一个字符

System.in.read() 只能接受一个 java 字符,并且是 char 类型,不适合大量的输入输入。当我们需要的数据是其他类型时,还需要自己去手动转换。

import java.io.*;

public class scan {
    public static void main(String[] args) throws IOException {
       char ch = (char) System.in.read();
       //此处输出是字符
        System.out.println(ch);

    }
}

2) BufferedReader 接受一个字符串

采用 BufferedReader 只能接受一个字符串,如果需要是整数类型,需要自己手动转换。最近在做多益网络的笔试题时,就必须要采用这种方式输入,不能使用 Scanner 方式输入,很坑!

import java.io.*;

public class scan {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = null;
        System.out.println("please enter a value:");
        str = br.readLine();

        System.out.println("value is: " + str);

        String str2 = br.readLine();
        System.out.println("value is: " + str2);

        //此处输入的虽然是字符,但是打印的是ASCLL 码,需要注意
        int value = br.read();
        System.out.println("value is :" + value);


    }
}

BufferedReader 接受一行数据并转换为数组

    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String str = null;
        str = bufferedReader.readLine();
        //用正则表达式将输入转换为数组
        String[] nums = str.split(" ");
        System.out.println(nums.length);
    }

3) Scanner 方式输入

Scanner 类是 java.util 下的类,是应用较为广泛的输入输入类,对于字符串、整形、浮点型,只要稍作改变扁可以直接接受。

import java.io.*;
import java.util.Scanner;

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

        while (scanner.hasNext()){
            //接受一行数据
            System.out.println(scanner.nextLine());
            //接受一个整数
            System.out.println(scanner.nextInt());
            //接受一个浮点数
            System.out.println(scanner.nextDouble());
        }

    }
}

其中,nextLine()可以接收空格或者tab键,其输入应该以enter键结束。但是 nextInt nextDouble 等是不接受空格键的,会一直等待有效数据的输入

猜你喜欢

转载自blog.csdn.net/huan_chen/article/details/80874210