
也有种可能是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,利用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怎么获取控制台输入的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)