前言
得到输入的内容我们程序员不会, 但是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值