问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java从键盘输入数

发布网友 发布时间:2022-04-25 15:25

我来回答

2个回答

热心网友 时间:2023-10-12 15:39

因为运行到double data_2 = input.nextDouble()这句话时,你要输入一个实数,然后按回车。
那么好了,这个“回车”就被String str2 = input.nextLine()这句话捕获了...所以str2已经取到值了,而且就是回车(也就是\n)。
改进的方法就是在String str2 = input.nextLine();前面加一句 String huiche = input.nextLine();这样先把回车取走,然后再执行String str2 = input.nextLine();追问为什么不是先执行System.out.println("输入一行字符:");
再执行String str2 = input.nextLine();??
为什么不是按顺序执行??而先执行String str2 = input.nextLine();???好奇怪···

追答都执行了。
System.out.println("输入一行字符:");这句话是已经执行了。
String str2 = input.nextLine(); 你可以查一下这个方法的api。
nextXXX方法和nextLine方法的表象区别是前者读取的是“一段”字符,而后者读取的是一行字符串。
出现以上现象的原因简单的说主要是由nextXXX()方法的不负责造成的。

nextXXX()方法的工作原理:

从一行中扫描,直到碰到特定的标识符:空格或是换行符(\n),便获取之前的东西。
nextDouble()读取了之前的数据,但并没有读入"\n",也不负责换行,然后就把 "\n"丢给了nextLine()处理,
nextLine()看见“\n”就收了,然后扫描了 \n 之前的内容,也就是空字符串。于是出现问题了。

热心网友 时间:2023-10-12 15:40

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
解决的办法是:在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。
double data_2 = input.nextDouble();
input.nextLine();
System.out.println("输入一行字符:");
String str2 = input.nextLine();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 vivo X30充满电需要多久? 琛的偏旁是什么 怎么读 深探琛这三个字的右边还可以加上什么部首组成新字? 请问"琛"这字意思 cpu和高通骁龙cpu哪个好,有什么区别 高通骁龙处理器和高通SM4350处理器有什么区别? cpu高通骁龙是什么意思? 骁龙处理器是高通的吗 高通骁龙和骁龙区别 高通骁龙处理器怎么样? 高通和骁龙都指的是处理器吗? 证券从业资格证考试科目包含三种类别 你是哪一类 处理器高通骁龙是标配还是高配 保荐代表人考试对学历有要求吗?什么人都可以考吗? 手机CPU高通和骁龙哪个好? 要考保荐人是不是证券从业资格那五门都要考?还是只要过两门就可以了 高通和骁龙是一样的吗? 报名了今年十月份的证券从业考试,如果只通过一门《证券市场基础知识》,可以参加保荐代表人考试么? 旧版证券从业入门已过,现在想考保荐人,需要再从新考新版的入门么 成为保荐人 流程 在JAVA中怎么从键盘输入一个数字 用什么关键字 java从键盘输入N个数,并输出其最大值和最小值。 在java中怎样从键盘输入数字(新手问题) java编程中从键盘输入两个数并求其和,差,积,商 Java如何实现从键盘输入一个数? java从键盘输入一个数字有几种写法? java从键盘输入十个数并排序 用java程序编写从键盘输入n个数,求这n个数的最大数与最小数,并输出结果 用JAVA编程从键盘输入一个数,判断该数是否是完全数怎么做 彼岸花未落,奈何等千年啥意思 Java中从键盘输入一串数字,判断这串数字中是否有数字x,如果有则去掉所有的数? 彼岸花未开时的图片 JAVA中如何实现从键盘中输入一个整数? 怎么样才能让自己有点小积蓄 我的彼岸花没见开花就长叶子了是什么情况? 诺基亚7P触屏失灵怎么解决 java中,从键盘输入一位整数,当输入1~7时 想知道怎么样才能积更多的财富值? java求解,从键盘输入n个数,要求第一行输入n的值,第二行输入n个数。 怎样积德积福