我是Java菜鸟,请问用Scanner类怎样实现读取用户在命令行输入各种类型的数据谢谢!

我是Java菜鸟,请问用Scanner类怎样实现读取用户在命令行输入各种类型的数据谢谢!,第1张

也有种可能是jdk 15 一下的不支持这个构造!

BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));

String value = "";

do {

Systemoutprint("请输入数字:");

try {

value = brreadLine();

} catch (IOException e) {

eprintStackTrace();

}

这个是通用的

使用该类创建一个对象

Scanner Sc=new Scanner(Systemin);

然后Sc对象调用下列方法(函数),读取用户命令行输入的各种数据类型: nextByte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot() 。这些方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认。

例如,拥护在键盘输入1234,hasNextFloat()的值是true,而hasNextInt()的值是false。NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

例子代码:

执行结果:

扩展资料:

Scanner的构造器支持多种方式,可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。

下面是一些API函数的用法:

delimiter():

返回此 Scanner 当前正在用于匹配分隔符的 Pattern。

hasNext() :

判断扫描器中当前扫描位置后是否还存在下一段。

hasNextLine() :

如果在此扫描器的输入中存在另一行,则返回 true。

next() :

查找并返回来自此扫描器的下一个完整标记。

nextLine() :

此扫描器执行当前行,并返回跳过的输入信息。

参考资料:

百度百科--Scanner 

//构造一个Scanner对象scanner,利用Systemin作为构造参数

Scanner input= new Scanner(Systemin);

//利用scanner中的方法获得用户的输入

inputnext()--获取字符串对象

inputIntNext()--获取整数数值对象

假设我们输入连续的2个“#”号结束,这样写:

Scanner sc = new Scanner(Systemin);

String input = null;

do{

input = scnext();

}while(!"##"equals(input));

Scanner sc=new Scanner (Systemin); 你可以sc 然后按alt+ 看它的提示。

scnext() String ,遇到无效字符就会结束

scnextLine() String,只有enter键才结束。

其他的基本类型

scnextDouble() Double 类型,

scnextFloat() Float 类型,

等,不在一一列举

没有,由于Scanner是一个final类,不可以去继承但是你可以使用面向对象的一个机制封装去实现一个nextChar *** 作。

import

javaioInputStream;

import

javautilInputMismatchException;

import

javautilScanner;

public

class

Scan

{

private

Scanner

reader;

public

Scan(InputStream

in)

{

reader

=

new

Scanner(in);

}

public

boolean

hasNextChar()

{

return

readerhasNext("");

}

public

char

nextChar()

{

String

ret

=

readernext();

if

(retlength()

>

1)

{

throw

new

InputMismatchException();

}

return

(char)retcharAt(0);

}

public

boolean

hasNextInt()

{

return

readerhasNextInt();

}

public

boolean

hasNextInt(int

radix)

{

return

readerhasNextInt(radix);

}

public

int

nextInt()

{

return

readernextInt();

}

public

int

nextInt(int

radix)

{

return

readernextInt(radix);

}

public

static

void

main(String[]

args)

{

Scan

scan

=

new

Scan(Systemin);

Systemoutprintln(scanhasNextChar());

Systemoutprintln(scannextChar());

}

}

你是想做四则运算啊。结合使用Scan类可以和你的switch语句可以达到你的要求。

以上就是关于我是Java菜鸟,请问用Scanner类怎样实现读取用户在命令行输入各种类型的数据谢谢!全部的内容,包括:我是Java菜鸟,请问用Scanner类怎样实现读取用户在命令行输入各种类型的数据谢谢!、java中怎么用scanner、java怎么获取控制台输入的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9453889.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存