前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中Scanner的理解大总结「建议收藏」

Java中Scanner的理解大总结「建议收藏」

作者头像
全栈程序员站长
发布2022-09-09 09:59:21
6070
发布2022-09-09 09:59:21
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Scanner类常用的方法: Scnaner(File file);Scnaner(String filename);创建一个从特定文件扫描的扫描器 hasNext();还有可读取的书库返回true next();返回下一个标志作为字符串 nextLine();使用行分隔符从这个扫描器返回一个行结束 nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();分别返回一个对应类型的值 useDelimiter(string pattern);设置这个扫描器的分割模式并返回这个扫描器 一,从控制台输入 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可

代码语言:javascript
复制
public class scanner { 
        public static void main(String[] args) { 
                Scanner s = new Scanner(System.in); //从控制台输入
                System.out.println("请输入字符串:"); 
                while (true) { 
                        String line = s.nextLine();                         
                        System.out.println( line); 
                } 
        } 
}

Scanner默认使用空格作为分割符来分隔文本

代码语言:javascript
复制
public static void main(String[] args) throws FileNotFoundException { 
  Scanner s = new Scanner("123 456 789"); 
                while (s.hasNext()) { 
                        System.out.println(s.next()); 
                } 
        }
//输入结果就是
123
456
789        

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

Scanner(File file) //构造一个新的Scanner,它生成的值是从指定文件扫描的 Scanner(InputStream source) //构造一个新的 Scanner,它生成的值是从指定的文件的输入流扫描的 Scanner(String filename) //构造一个新的Scanner,它生成的值是从指定文件名扫描的。 文件对象,文件名,文件输入流

代码语言:javascript
复制
public static void main(String[] args) throws FileNotFoundException { 
 InputStream in = new FileInputStream(new File("score.txt")); 
     Scanner s = new Scanner(in);//文件输入流
   //new Scanner("score.txt");new Scanner(new file("score.txt"));都可以
                while(s.hasNextLine()){ 
                        System.out.println(s.nextLine()); 
                } 
        }

三,Scanner是怎么工作的 next();nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();都是令牌读取方法,他们分隔符默认情况下是空格。 next()和nextLine() 的区别: next()方法读取一个由分割付分割的字符,但是nextLine()是读取一个以行分割符结束的行 例如test.txt文本中有 23 345

代码语言:javascript
复制
Scanner input=new Scanner(new File("test.txt"));
int a=input.next();
String line=input.nextLine();//要读到行分隔符

的结果是a的值是34 ,line的值是”,”3,’4’,’5’ 再如如果从键盘输入23,然后按回车键,接着输入345,然后在按钮回车键,执行

代码语言:javascript
复制
Scanner input=new Scanner(new File("test.txt"));
int a=input.next();
String line=input.nextLine();//要读到行分隔符

之后的结果是a的值是23,但是line的却是空的字符串,因为nextInt()读取到23,然后在分割付处停止,这里的分隔符是行分隔符,就是回车键,所以nextLine还没有到数据就结束了,为空字符串。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162073.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档