Scanner在java中有什么用法怎么用

举个例子吧。我是初学者对这些文字没有非常具体的感觉

1、首先在一个java工程下创建一个类名的ScannerDemo的类。

2、然后创建一个Scanner类对象,让它接收从键盘输入的数据。

3、这里利用的nextLine方法接收字符串。next方法其实也是可以获取字符串的。但是next不能获取空格,比如输入Hello World,使用next方法只会得到Hello;而使用nextLine方法会得到完整的Hello World;因为nextLine方法是以回车键为结束标识的。

4、在程序窗口空白处,点击右键,选择Run As ——Java Application。

5、这时在控制台中,输入字符串,按回车。可以看到利用Scanner类的nextLine成功接收到字符串。

6、当然Scanner除能接收字符串之外,像整数,浮点数也是可以接收的,都有对应的方法。下面就以接收整数为例,其他类型的也差不多,可以自己尝试一下。

7、运行查看结果,可以看到nextInt()只能接收整数。想要接收其他类型的数据就得用其他方法了。

扩展资料:

Scanner类常用方法

1、String next():接收控制台输入的字符串(备注:不能将空格作为字符串接收);

2、String nextLine():接收控制台输入的字符串;

3、int nextInt():接收控制台输入的int类型的数据;

4、double nextDouble:接收控制台输入的double 类型的数据;

5、boolean nextBoolean():接收控制台输入的boolean 类型的数据;

6、输入char类型的数据;

Scanner类没有直接输入char类型的方法,可以通过charAt()方法从next()或nexyLine()获取。

参考资料:百度百科-计算机编程语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-25

创建 Scanner 对象的基本语法:Scanner s = new Scanner(System.in);

接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据。

一、使用 next 方法:

1、ScannerDemo.java 文件代码:

import java.util.Scanner;

public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);        // 从键盘接收数据

// next方式接收字符串
System.out.println("next方式接收:");        // 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();            System.out.println("输入的数据为:" + str1);        }
scan.close();    }}

2、执行以上程序输出结果为:

$ javac ScannerDemo.java

$ java ScannerDemonext方式接收:runoob com输入的数据为:runoob

二、使用 nextLine 方法:

1、ScannerDemo.java 文件代码:

import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);        // 从键盘接收数据

// nextLine方式接收字符串
System.out.println("nextLine方式接收:");        // 判断是否还有输入
if (scan.hasNextLine()) {
String str2 = scan.nextLine();            System.out.println("输入的数据为:" + str2);        }
scan.close();    }}

2、执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemonextLine方式接收:runoob com输入的数据为:runoob com

扩展资料:

Scanner:使用该方法的java类文档前需加语句“ import java.util.Scanner; ”。一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

扫描器所使用的默认空白分隔符通过 Character.isWhitespace 来识别。不管以前是否更改,reset() 方法将把扫描器分隔符的值重置为默认空白分隔符。

参考资料:

Scanner-百度百科

本回答被网友采纳
第2个回答  推荐于2019-08-20

用法:

1、Scanner nextInt()只读取数值,剩下"\n"还没有读取,并将cursor放在本行中。

2、next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

3、nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

4、在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。

例如:

1、代码如下:

public class NextTest{  

public static void main(String[] args) {  

String s1,s2;  

Scanner sc=new Scanner(System.in);  

System.out.print("请输入第一个字符串:");  

s1=sc.next();  

sc.nextLine();

System.out.print("请输入第二个字符串:");  

s2=sc.nextLine();  

System.out.println("输入的字符串是:"+s1+" "+s2);  

}  

}  

2、运行结果:

请输入第一个字符串:home 

请输入第二个字符串:work 

输入的字符串是:home work

扩展资料:

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

例如:

1、以下代码使用户能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

2、以下代码使 long 类型可以通过 myNumbers 文件中的项分配:

Scanner sc = new Scanner(new File("myNumbers"));

while (sc.hasNextLong()) {

long aLong = sc.nextLong();

}

参考资料来源:百度百科—Scanner

本回答被网友采纳
第3个回答  推荐于2017-09-04
public final class Scanner

extends Object
implements Iterator<String>
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

再看一个例子,以下代码使 long 类型可以通过 myNumbers 文件中的项分配:
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}

扫描器还可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();

输出为:
1
2
red
blue

以下代码使用正则表达式同时解析所有的 4 个标记,并可以产生与上例相同的输出结果:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
第4个回答  推荐于2017-09-01
Scanner input = new Scanner(System.in)

首先,你的.java文件中必须包含
import java.util.Scanner ; 或 import java.util.*;
才能使用这句,因为要用到Scanner

Scanner对象是可以 读取控制台的输入

Scanner input = new Scanner();
这是一般的对象创建方法,你应该懂吧.

加了一个对象System.in参数,表示传递的是键盘的输入,懂了吧? (不懂就去把对象和参数传递看懂来.)

就是说Scanner类的这个input对象可以调用键盘上输入的东西,

比如 String name=input.nextLine();
表示你在命令行输入的下一行字符串 它被存放在name变量里本回答被提问者采纳