黑马程序员技术交流社区
标题:
关于Scanner类
[打印本页]
作者:
曹文涛
时间:
2011-9-6 14:33
标题:
关于Scanner类
下面这段代码中 为什么第7行被注释掉才能正常运行?[code=java]import java.util.* ;
public class ScannerDemo01{
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
int i = 0 ;
float f = 0.0f;
// scan.useDelimiter("\n");
System.out.print("请输入:");
if (scan.hasNextInt()){
i = scan.nextInt();
System.out.println("输入的是整数:" + i);
System.exit(1);
}else{
System.out.println("输入的不是整数");
}
if (scan.hasNextFloat()){
f = scan.nextFloat();
System.out.println("输入的是小整" + f);
System.exit(1);
}else{
System.out.println("输入的不是小数");
}
}
}[/code]
[
本帖最后由 曹文涛 于 2011-09-06 14:54 编辑
]
作者:
黄伟龙
时间:
2011-9-6 17:31
你首先要了解scanner类的这个useDelimiter()方法是什么用的,建议看api,它是设置扫描器的界定符的,默认的界定符是空,不是空格,是空,就是说在在遇到空就说明一个扫描任务的完成,例如我这样设scan.useDelimiter("a"),那就是说明我把字母a设置为scan扫描器的界定符,这样我运行输入的时候只要输入8a,再按enter键,就会输出:输出的整数是:8,懂吗,而你却把界定符设置为\n,而\r\n这个又刚好java是换行符,这样无论你怎么输入,在按下回车键后\r这个字符都会在他检查的范围内,\r不是一个整数,结果当然不是你想要的。自己看看api实践实践就懂了。
[
本帖最后由 黄伟龙 于 2011-09-06 17:32 编辑
]
作者:
匿名
时间:
2011-9-6 18:48
标题:
回复 沙发 的帖子
好的 我再仔细看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2