数据输入
Scanner使用的基本步骤
-
导包
import java.util.Scanner;
导包的动作必须出现在类定义的上面 -
创建对象
Scanner sc = new Scanner(System.in);
- 接收数据
int i = sc.nextInt();
常用输入语句
代码
import java.util.Scanner;
public class InputData {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入整数");
int a = input.nextInt();
System.out.println("请输入小数");
double b = input.nextDouble();
input.nextLine(); // 接收上一个输入完成后的回车符,后面会讲
System.out.println("请输入字符串");
String s = input.nextLine();
System.out.println("请输入字符");
char i = input.next().charAt(0);
System.out.println(a);
System.out.println(b);
System.out.println(s);
System.out.println(i);
}
}
next() 与 nextLine() 方法读取字符串
- next()
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串。
- nextLine()
- 以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
next().charAt() 读取单个字符
- charAt()这个方法中的参数是args[]一个数组
- charAt(n)这个方法中的参数表示取出字符串中的第n+1个字符
charAt(0)这个方法中的参数表示取出字符串中的第1个字符
同时输入 int 型和 String 型出错
问题描述
在Java中,如果需要同时输入int和String类型时,有时候会出现错误,需要进行处理。输入整数后如果按了回车符后进入下面的程序时,回车符会把这个字符串直接顶替掉,从而出现明明写了需要输入字符串却直接被跳过的情况。
解决方案
- 调换输入顺序,先输入 String ,后输入 int 。
- int和String都采用字符串输入,将表示int的String再转换回int类型。
Scanner input = new Scanner(System.in);
String a = input.nextLine();
int a2 = Integer.parseInt(a);//转换为int类型
String b = input.nextLine();
- 在获取int和String之间加一句input.nextLine(),用来接收输入完 int 后的回车符。
Scanner input = new Scanner(System.in);
int a = input.nextInt();
input.nextLine();//用来接收回车符
String b=input.nextLine();
System.out.println(a);
System.out.println(b);
- 再创建一个Scanner对象,获取String的值。
Scanner input1 = new Scanner(System.in);
int a = input.nextInt();
Scanner input2 = new Scanner(System.in);
String s=input2.nextLine();