//读取输入一个单词,以空白符作为分隔,用next
System.out.println("请输入一行字符串,可带空格,以enter结束: ");
String b = in.next();
System.out.println("用next获取您的输入是: " + b);
//键盘输入aa bb cc,打印输出aa,然后报错
//读取浮点数
System.out.println("请输入浮点数数字: ");
double d = in.nextDouble();
System.out.println("用nextDouble获取您的输入是: " + d);
//读取输入一个单词,以空白符作为分隔,用next
System.out.println("请输入一行字符串,可带空格,以enter结束: ");
do{
String b = in.next();
System.out.println("用next获取您的输入是: " + b);
}while(in.hasNext());
//读取浮点数
System.out.println("请输入浮点数数字: ");
double d = in.nextDouble();
System.out.println("用nextDouble获取您的输入是: " + d);
然后不报错了,但程序在执行完dowhlie循环后就自己结束了,下面那个读取浮点数的代码没执行
有大佬能告诉是怎么回事吗?
主要原因是空格导致的,用换行符\n当做分隔符
Scanner in = new Scanner(System.in);
in.useDelimiter("\n");
System.out.println("请输入一行字符串,可带空格,以enter结束: ");
String b = in.next();
System.out.println("用next获取您的输入是: " + b);
in.reset();
System.out.println("请输入浮点数数字: ");
double d = in.nextDouble();
System.out.println("用nextDouble获取您的输入是: " + d);
do while循环是等待你继续输入,所以后面没有执行
另一种写法
Scanner in = new Scanner(System.in);
System.out.println("请输入一行字符串,可带空格,以enter结束: ");
String b = in.nextLine();
System.out.println("用next获取您的输入是: " + b);
//读取浮点数
System.out.println("请输入浮点数数字: ");
double d = Double.parseDouble(in.nextLine());
System.out.println("用nextDouble获取您的输入是: " + d);
String b = in.next();
修改为
String[] arr = in.nextLine().split(" ");
然后
b = arr[0];
...