2 qq 34611363 qq_34611363 于 2016.04.10 20:12 提问

帮忙看看这个程序,为什么设置读取的分隔符为换行后无法正确读入数据

import java.util.Scanner;
public class ScannerDemo2{
public static void main(String []args){
Scanner scan=new Scanner(System.in);
scan.useDelimiter("\n");//设置了分隔符后无法读入整数和小数,if语句判断都是false,为什么?
System.out.println("请输入整数:");
int num=0;
if(scan.hasNextInt()){
num=scan.nextInt();
}else{
System.out.println("输入的不是整数");
scan.next();
}
System.out.println("请输入小数");
float f=0f;
if(scan.hasNextFloat()){
f=scan.nextFloat();
}else{
System.out.println("输入的不是小数");
}
System.out.println("整数:"+num);
System.out.println("小数"+f);
}
}
帮忙看看这个程序,为什么设置读取的分隔符为换行后无法正确读入数据

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.10 20:36
已采纳

正确的分隔符不应该是"\n"(单个换行),而应该是"\r\n"(回车换行)才对。修正如下,就正确了:

 scan.useDelimiter("\r\n");
qq_34611363
qq_34611363 原来如此,谢谢
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.10 20:35

你怎么输入的,我没发现问题

http://ideone.com/LWZXql
请输入整数:
请输入小数
整数:1
小数2.1

qq_34611363
qq_34611363 换成"\r\n"问题解决了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!