Java编程:获取输入的三种方法

1. 获取单字符输入—System.in

注意:System.in只能接收单个字符,并且输出字符的ASCLL值。如果需要输出字符,需要进行强制类型转换。

接收一个数字

public static void scaneNum(){
    
    
    int scane = 0;
    System.out.print("请输入数据:");
    try {
    
    
        scane = System.in.read();
    } catch (Exception e) {
    
    
        e.printStackTrace();
    }
    System.out.println("输入的数据为:" + scane);
}

运行结果:只接收第一个数字
在这里插入图片描述

接收一个字符

public static void scaneChar(){
    
    
    char scane = '0';
    System.out.print("请输入数据:");
    try {
    
    
        scane = (char)System.in.read();
    } catch (Exception e) {
    
    
        e.printStackTrace();
    }
    System.out.println("输入的数据为:" + scane);
}

运行结果:只接收第一个字符
在这里插入图片描述

package testScane;

public class test {
    
    
    public static void main(String[] args) {
    
    
        //scaneNum();
        scaneChar();
    }

    public static void scaneNum(){
    
    
        int scane = 0;
        System.out.print("请输入数据:");
        try {
    
    
            scane = System.in.read();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        System.out.println("输入的数据为:" + scane);
    }

    public static void scaneChar(){
    
    
        char scane = '0';
        System.out.print("请输入数据:");
        try {
    
    
            scane = (char)System.in.read();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        System.out.println("输入的数据为:" + scane);
    }
}

2. 获取一行字符串输入:Scanner

注意:在使用Scanner时候,需要导入util中的Scanner包。
① next()方法用以获得用户输入的字符串
② nextInt()将取得的输入字符串转换为整数类型
③ nextFloat()转换成浮点型(默认保留两位小数)
④ nextBoolean()转换为布尔型

package testScane;

import java.util.Scanner;

public class test1 {
    
    
    public static void main(String[] args) {
    
    
        scane();
        scaneInt();
        scaneFloat();
        scaneBool();
    }

    public static void scane() {
    
    
        System.out.print("请输入数据:");
        Scanner scan = new Scanner(System.in);
        String read = scan.nextLine();
        System.out.println("输入的数据为:" + read);
    }

    public static void scaneInt() {
    
    
        System.out.print("请输入整形数据:");
        Scanner scan = new Scanner(System.in);
        int scanInt = scan.nextInt();
        System.out.println("输入的数据为:" + scanInt);
    }

    public static void scaneFloat() {
    
    
        System.out.print("请输入浮点型数据:");
        Scanner scan = new Scanner(System.in);
        float scanFloat = scan.nextFloat();
        System.out.println("输入的数据为:" + scanFloat);
    }

    public static void scaneBool() {
    
    
        System.out.print("请输入数据:");
        Scanner scan = new Scanner(System.in);
        boolean scanBoolean = scan.nextBoolean();
        System.out.println("输入的数据为:" + scanBoolean);
    }
}

运行结果:
在这里插入图片描述
注意:next()和nextLine()的区别

  • next()方法不接收空格,在接收到有效数据之前,所有的空格、tab键等输入都会被忽略掉。而在接收到第一个有效数据后,如果按下空格或tab,之后任何输入都无效,直到按到回车退出。
  • nextLine()可以接收空格或者tab键,其输入以enter键结束。
package testScane;

import java.util.Scanner;

public class test4 {
    
    
    public static void main(String[] args) {
    
    
        scan1();
        scan2();
    }

    public static void scan1(){
    
    
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        System.out.println(str);
    }

    public static void scan2(){
    
    
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        System.out.println(str);
    }
}

运行结果:在这里插入图片描述

3. 获取一行字符串输入:BufferedReader

package testScane;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class test3 {
    
    
    public static void main(String[] args) throws IOException {
    
    
        scane();
    }

    public static void scane() throws IOException {
    
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String scane = null;
        System.out.print("输入数据:");
        scane = br.readLine();
        System.out.println("您输入的数据为:" + scane);
    }
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KaiSarH/article/details/108598152