java中Scanner类有什么作用

 我来答
ynynyn14
推荐于2019-08-17 · TA获得超过3102个赞
知道答主
回答量:7
采纳率:0%
帮助的人:1.8万
展开全部

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();

}

扩展资料

Scanner类的基本用法:

Scanner是Java 1.5新增的类,可以使用该类创建一个默认指向键盘的对象。

Scanner reader=new Scanner(System.in);

然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort() 。

上述方法执行时都会造成堵塞,等待用户在命令行输入数据后回车确认。例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false。nextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

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

resong27lhk
2010-07-07 · TA获得超过157个赞
知道答主
回答量:42
采纳率:0%
帮助的人:68.9万
展开全部
首先,Scanner就相当于人的耳朵,一段程序就相当于一个人
所以,每段程序只能有一个接收器(Scanner)
其次,PrintStream,可以用于向控制台输出运行时数据
实质上,java的API在内部实现控制台输出就是用的PrintStream(System.*)来做的,而这个Scanner则是可以接受控制台的输入数据,供正在运行程序使用,有点像c里面的scanf
最后,一个例子
import java.util.Scanner;

public class TestScanner {

/**
* 测试
* @param args
*/
public static void main(String[] args) {
//构造Scanner对象的引用
Scanner scan = new Scanner(System.in);
System.out.println("请在控制台输入一个数字:");
//输入数字之后按下回车
int i = scan.nextInt();
//显示刚刚输入的数字
System.out.println("您刚刚输入的数字是:" + i);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
推荐于2017-09-01 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3960万
展开全部
  1、Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);  
  2、reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.
  3、例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Stevenchen1989
推荐于2017-09-15 · TA获得超过235个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:90.8万
展开全部
新的类:Scanner
Scanner是一个新的操作类,是在java.util包中提供的一个操作类,使用此类可以方便的完成输入流的输入操作。
package org.lxh.scannerdemo;
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
int i = 0 ;
if(scan.hasNextInt()){
i = scan.nextInt() ;
}
System.out.println("i = " + i) ;
}
}
例如,下面再看一个可以接收字符串的例子
package org.lxh.scannerdemo;
import java.util.Scanner;
public class ScannerDemo02 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
String str = null ;
if(scan.hasNext()){
str = scan.next() ;
}
System.out.println("str = " + str) ;
}
}
使用此类也可以进行正则匹配,例如:输入日期格式
package org.lxh.scannerdemo;
import java.util.Scanner;
public class ScannerDemo03 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
String str = null ;
if(scan.hasNext("\\d{4}-\\d{2}-\\d{2}")){
str = scan.next() ;
}
System.out.println("str = " + str) ;
}
}
但是,此类因为接收的是输入流的操作类,所以也可以使用此类完成文件内容的读取。
package org.lxh.scannerdemo;
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
public class ScannerDemo04 {
public static void main(String[] args) throws Exception {
File file = new File("C:" + File.separator + "demo.txt") ;
Scanner scan = new Scanner(new FileInputStream(file)) ;
StringBuffer buf = new StringBuffer() ;
scan.useDelimiter("\n") ;
while(scan.hasNext()){
buf.append(scan.next()).append("\n") ;
}
System.out.println("buf = " + buf) ;
}
}
需要设置读取的分隔符。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李越弘
2012-05-19
知道答主
回答量:33
采纳率:0%
帮助的人:25.5万
展开全部
输入汉字和数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式