区分 Scanner、System.in 和 Scanner class 在 java 中提供的 next() 方法的工作?
distinguish the working of Scanner, System.in, and next() methods that the Scanner class provides in java?
Scanner scanner = new Scanner(System.in);
System.out.println("enter number :");
int number = scanner.nextInt();
System.out.println("Number is " + number);
让我一步步解释我的理解,
Scanner scanner = new Scanner(System.in);
Scanner 是 java 内置 classes 之一,也是我们可以使用它来读取用户输入的方法之一。
scanner是我们创建的对象的标识符。
使用new
,我们创建对象的一个实例。
System.in
帮助我们从控制台(键盘)获取输入
System.out.println("输入数字 :");
打印“输入数字:”。
整数=scanner.nextInt();
从控制台(键盘)读取提供给 system.in 的输入并将输入解析(转换)为 int 并将其存储在变量编号中。
System.out.println("数字是" + 数字);
打印语句"Number is " + number(input stored in the variable number));
这是我的模糊理解,我不确定我的知识。
我的问题是;
Scannerclass是用来读取用户输入的,那么System.in也是用来读取输入的吗?不是吗?解释这两个术语之间的明确区别会有所帮助吗?
当我们从控制台键入(输入)输入时,它会去哪里? System.in?
是否 System.in 存储值?
- nextInt() 方法也用于读取输入?怎么运行的?它是否读取已经被 System.in 读取然后解析为 int 的输入?
扫描仪读取,System.in读取,nextInt()读取,全部读取?我分不清它们的工作原理?
System.in
从 中读取 ,它不会自己读取。
Scanner
class 有助于解析从您提供的输入源获得的输入。
在这种情况下,您已经给它 System.in
,所以它从那里读取输入。
nextInt()
是 Scanner
提供的帮助您解析输入的方法之一。具体来说,它解析一个整数。
System.in
是一个 InputStream
,它(默认情况下)从控制台提供用户输入。您可以使用 read
:
直接读取它
int someByte = System.in.read();
请注意,这会读取一个无符号字节(Java 没有无符号字节的类型,因此类型为 int
)。例如,如果我在我的控制台中输入 1
,上面将把 49 存储到 someByte
,因为 49 是 字符 1
的第一个字节] 编码为.
如果你想 someByte
改为 1,使用 System.in.read
显然不是很有帮助,是吗?我们不想只是读取字节。我们要读取字节,并使用特定的编码将这些字节转换为字符,然后 解析 将字符串转换为数字。这就是 Scanner
所做的。
A Scanner
可以获取输入流,并按需从中读取字节,使用默认编码将它们理解为字符,然后将字符块组合成 tokens。 Scanner
读取内容的一种方法是调用 nextInt
。 nextInt
所做的是:读取字节直到找到一个完整的标记,并将其解析为一个整数。
简而言之,System.in
为您提供原始字节,Scanner
为您提供已解析或其他方式的令牌。希望这能回答您的第一个和第三个问题。
when we type(enter) input from the console, where is it going? to the System.in?
是的,在这个抽象层次上,您可以说这是它首先要去的地方。然后将您输入的字节传递给 Scanner
,然后将它们转换为标记,然后进行解析。
Scanner scanner = new Scanner(System.in);
System.out.println("enter number :");
int number = scanner.nextInt();
System.out.println("Number is " + number);
让我一步步解释我的理解,
Scanner scanner = new Scanner(System.in);
Scanner 是 java 内置 classes 之一,也是我们可以使用它来读取用户输入的方法之一。
scanner是我们创建的对象的标识符。
使用
new
,我们创建对象的一个实例。System.in
帮助我们从控制台(键盘)获取输入System.out.println("输入数字 :");
打印“输入数字:”。
整数=scanner.nextInt();
从控制台(键盘)读取提供给 system.in 的输入并将输入解析(转换)为 int 并将其存储在变量编号中。
System.out.println("数字是" + 数字);
打印语句"Number is " + number(input stored in the variable number));
这是我的模糊理解,我不确定我的知识。
我的问题是;
Scannerclass是用来读取用户输入的,那么System.in也是用来读取输入的吗?不是吗?解释这两个术语之间的明确区别会有所帮助吗?
当我们从控制台键入(输入)输入时,它会去哪里? System.in?
是否 System.in 存储值?
- nextInt() 方法也用于读取输入?怎么运行的?它是否读取已经被 System.in 读取然后解析为 int 的输入?
扫描仪读取,System.in读取,nextInt()读取,全部读取?我分不清它们的工作原理?
System.in
从 中读取 ,它不会自己读取。
Scanner
class 有助于解析从您提供的输入源获得的输入。
在这种情况下,您已经给它 System.in
,所以它从那里读取输入。
nextInt()
是 Scanner
提供的帮助您解析输入的方法之一。具体来说,它解析一个整数。
System.in
是一个 InputStream
,它(默认情况下)从控制台提供用户输入。您可以使用 read
:
int someByte = System.in.read();
请注意,这会读取一个无符号字节(Java 没有无符号字节的类型,因此类型为 int
)。例如,如果我在我的控制台中输入 1
,上面将把 49 存储到 someByte
,因为 49 是 字符 1
的第一个字节] 编码为.
如果你想 someByte
改为 1,使用 System.in.read
显然不是很有帮助,是吗?我们不想只是读取字节。我们要读取字节,并使用特定的编码将这些字节转换为字符,然后 解析 将字符串转换为数字。这就是 Scanner
所做的。
A Scanner
可以获取输入流,并按需从中读取字节,使用默认编码将它们理解为字符,然后将字符块组合成 tokens。 Scanner
读取内容的一种方法是调用 nextInt
。 nextInt
所做的是:读取字节直到找到一个完整的标记,并将其解析为一个整数。
简而言之,System.in
为您提供原始字节,Scanner
为您提供已解析或其他方式的令牌。希望这能回答您的第一个和第三个问题。
when we type(enter) input from the console, where is it going? to the System.in?
是的,在这个抽象层次上,您可以说这是它首先要去的地方。然后将您输入的字节传递给 Scanner
,然后将它们转换为标记,然后进行解析。