【Java课程心得】Java中接收用户输入的Scanner方法包括单字符(键盘录入)

前言

得到输入的内容我们程序员不会, 但是Java已经帮我们做好了键盘输入的功能, 我们只需要拿做好的功能来使用

一、使用键盘录入的三个步骤

①.导包: import java.util.Scanner; 导入Java已经写好的代码

②创建对象: Scanner sc = new Scanner(System.in); 固定写法

③使用对象: sc.nextInt(); 这里仅为获取键盘输入的整数

代码:

import java.util.Scanner;

public class ScannerDemo01 {
    
    
	public static void main(String[] args) {
    
    
		// 2.创建对象: Scanner sc = new Scanner(System.in); 固定写法
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个数字: ");
		// 3.使用功能: sc.nextInt(); 获取键盘输入的数字
		int num = sc.nextInt();
		System.out.println("用户输入的数字是: " + num);
	}
}

二、键盘录入整数,小数,字符,字符串

1.输入格式

①nextInt(): 接收整数
②nextDouble(): 接收小数
③next(): 可以接收字符串,不可以接收回车,不接收空格
④nextLine(): 可以接收字符串,还可以单独接收回车, 还可以接收空格
⑤next().charAt(0): 接收单个字符

import java.util.Scanner;
public class ScannerDemo03 {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入字符串nextLine: ");
		String str = sc.nextLine(); // 接收字符串
		System.out.println("str = " + str); //  
		
		System.out.println("请输入整数: ");
		int a = sc.nextInt();
		System.out.println("a = " + a);
		
		System.out.println("请输入小数: ");
		double d = sc.nextDouble(); // 3.33回车
		System.out.println("d = " + d);
		
		System.out.println("请输入字符串next: ");
		String str2 = sc.next(); // next接收用户输入的字符串
		System.out.println("str2 = " + str2);
		
		System.out.println("请输入字符: ");
        char ca = sc.next().charAt(0);//接收用户输入的单字符
        System.out.println("ca = " + ca);
	}
}

2.注意事项

当 nextLine() 放在 nextInt() 等后面使用时, 会出现无法输入的情况,

代码:

import java.util.Scanner;
public class Test05 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入整数: ");
        int a = sc.nextInt();
        System.out.println("a = " + a);

        System.out.println("请输入字符串nextLine: ");
        String str = sc.nextLine();
        System.out.println("str = " + str);
    }

运算结果如下图

用户无法
—用户无法输入str的值

原因:

用户还未来得及输入 str 程序就结束了, 原因就是因为 nextLine() 可以接受回车, 上一步输入10的时候敲下回车录入, 但是 nextInt() 只录入了10 ,回车就被 nextLine() 接受了, 所以用户无法输入

解决方法:
①. 将 nextLine() 放在最开始的时候录入

②将 nextLine() 替换为 next() , next() 也能接收字符串但不能接收空格和回车

3.录入单个字符的方法解释:

Scanner类中没有定义读取char的方法,没有 nextChar() 这个东西。因此我们要录入单个字符串就只能从String类型入手, 所以调用String的charAt(0)方法获取第一个字符.

补:String.charAt()方法: 返回指定索引处的 char值

猜你喜欢

转载自blog.csdn.net/maikotom/article/details/108859887