我从过去的经验中了解到的是,
nextInt()
或nextDouble()
将继续搜索,直到在同一行或下一行找到整数或双精度都没有关系,而通过扫描器类读取输入的字符串时,则会next()
考虑空格和将光标保持在同一行,如果在in代码之前使用if
nextLine()
会考虑剩余的光标,有人可以帮助我更详细地了解这一点,尤其是关于它的开始位置和结束位置吗?另外,如果我认为任何错误是正确的,请告诉我。next()``nextLine()``nextLine()
您最初的理解是错误的。
我从过去的经验中了解到的是.nextInt()或.nextDouble()会继续搜索,直到在同一行或下一行找到整数或双精度数都没有关系
nextInt()
并且分别nextDouble()
等待整数和double。如果它得到的不是预期的字符串,则抛出InputMismatchException
。
您可以运行此代码并亲自查看。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
s.nextInt();
}
}
根据您的报价:
.nextInt()或.nextDouble()会继续搜索,直到在同一行或下一行找到整数或双精度数为止
输入:Abcdf234gd
。你不会的234
。你得到InputMismatchException
。
对于.next()
和.nextLine()
,
.next()
:仅读取并返回字符串,直到遇到空格或EOF
。
.nextLine()
:返回字符串,直到遇到\n
or \r
或or 为止EOF
。意思是,它返回整行。
光标位置
next()
:
考虑以下字符串:
ABC DEF GHI JKL MNO PQR STU VWX YZ
初始位置:
->ABC DEF GHI JKL MNO PQR STU VWX YZ
当您调用时next()
,光标将移至:
ABC ->DEF GHI JKL MNO PQR STU VWX YZ
并返回 ABC
nextLine()
:
考虑以下字符串:
ABC DEF GHI JKL
MNO PQR STU VWX
YZ
初始位置:
->ABC DEF GHI JKL
MNO PQR STU VWX
YZ
当您调用时nextLine()
,光标将移至下一行:
ABC DEF GHI JKL
->MNO PQR STU VWX
YZ
然后返回ABC DEF GHI JKL
。
希望对您有所帮助。
本文向大家介绍Java使用Scanner类获取用户输入实例详解,包括了Java使用Scanner类获取用户输入实例详解的使用技巧和注意事项,需要的朋友参考一下 创建 Scanner 对象的基本语法: Scanner 类的 next() 方法 运行结果如下,会发现空格后面的英文没有被打印出来: Scanner 类的 nextLine 方法 在以上基础上修改代码: 运行结果,空格后面的英文也可以被打印
在处理扫描仪输入时,我们可以使用var。。带sc.nextInt()的参数??例如(以下代码) 输出是ArrayIndexOutOfBoundsException: 1任何人都可以解释这一点...
在第一次迭代中,代码工作正常,我写了一些无效的东西(不是命令),代码打印警告并继续。但是其他迭代返回,如果(!scanin.hasnextline())返回null;,则返回
本文向大家介绍Java Scanner 类的使用小结,包括了Java Scanner 类的使用小结的使用技巧和注意事项,需要的朋友参考一下 在笔试编程过程中,关于数据的读取如果迷迷糊糊,那后来的编程即使想法很对,实现很好,也是徒劳,于是在这里认真总结了Java Scanner 类的使用 通过 Scanner 类来获取用户的输入,下面是创建 Scanner 对象的基本语法: 接下来我们演示一个最简
问题内容: 如何使用该类从控制台读取输入?像这样: 基本上,我只需要让扫描程序读取用户名的输入,然后将输入分配给变量。 问题答案: 一个简单的例子来说明如何从中读取单个整数。这真的很简单。 要检索用户名,我可能会使用。 如果你想对输入进行更多控制,或者仅验证变量,也可以使用。 你可以在API文档中找到有关其实现的更多信息
如何使用类从控制台读取输入?类似这样的事情: 基本上,我想要的只是让扫描器读取用户名的输入,并将输入赋给变量。