【Lehr】个人对Java的Scanner类的浅谈

【Lehr】个人对Java的Scanner类的浅谈

使用方法

	Scanner in = new Scanner(.......);

最常见的是写System.in
从键盘读入内容,申请一个输入流。

也可以用字符串输入流文件等来直接构建这个对象

 	InputStream s =  new FileInputStream(new File(path))
 	Scanner in = new Scanner(s);

这种情况下编译器往往会有resource leak 资源泄露的警告
其实也可以忽略的

处理方法1

加上@Suppression来抑制警告

处理方法2

最后加上in.close();
就相当于一个水龙头,打开了要关上。
当然不关也就是警告一下(又不是文件打开不关 没什么大不了的)

常用的方法

Scanner 里面提供的一些常用的方法

in.useDelimiter("…");

这个方法就会让里面的东西被当成分割符(默认的是空格)

in.Next();

返回一个String 是以空格为分割的

in.NextLine();

则返回的是包括了空格的一行

例如输入abc def
前者返回abc
后者返回abc def

类似的还有NextInt()之类各种指定数据类型的方法

检查下文的方法:

hasNext();
hasNextLine();

只是检查有没有下一段。返回类型是布尔类。

升级版

hasNextInt();

小用法

public class Test {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
                                System.out.println("请输入数字些");
		if(in.hasNextInt())
		{
			String s = in.next();
			System.out.print(s);
		}
		in.close();
		
	}
}

hasNext()这类方法会让你键盘往里输入东西 但是他还是返回的是布尔类型 ,所以输入的还存储在里面。到遇到 s = in.next()才把这些东西输出去。

发布了33 篇原创文章 · 获赞 26 · 访问量 2626

猜你喜欢

转载自blog.csdn.net/qq_43948583/article/details/89528413
今日推荐