热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:java_Scanner类的使用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了java_Scanner类的使用相关的知识,希望对你有一定的参考价值。参考链接:h

篇首语:本文由编程笔记#小编为大家整理,主要介绍了java_Scanner类的使用相关的知识,希望对你有一定的参考价值。



参考链接:https://blog.csdn.net/android_depon/article/details/69669160 

       https://www.cnblogs.com/zhengchenhui/p/6008618.html

  Scanner是一个基于正则表达式的文本扫描器~~可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。

1.next( )和nextLine( )的区别

nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。

(简单点说,next我只要字,nextLine我啥都要)


1 import java.util.Scanner;
2
3
4 public class SubLoop {
5
6 public static void main(String[] args) {
7
8 String s1,s2;
9
10 Scanner sc=new Scanner(System.in);
11 System.out.print("请输入第一个字符串:");
12 s1=sc.nextLine();
13 System.out.println("输入的字符串是:"+s1);
14
15 System.out.print("请输入第二个字符串:");
16 s2=sc.next();
17 System.out.println("输入的字符串是:"+s2);
18
19 }
20 }

运行结果

next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

nextLine()方法的结束符只是Enter键

 

交换上述两个字符串的next和nextLine

 

nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法从键盘输入值。

经过验证,其他的next的方法,如nextDouble()  ,nextFloat() ,nextInt() 等与nextLine()连用时都存在这个问题。

 

解决的办法是:

在每一个 next()、nextDouble()  、nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。(顽皮点说,因为nextLine啥都要,所以有时候要错了空格,等不到所需输入)


1 import java.util.Scanner;
2
3 public class Lianxi {
4
5 public static void main(String[] args) {
6
7 String s2;
8 int s1;
9 Scanner sc=new Scanner(System.in);
10 System.out.print("请输入第一个整数:");
11 s1=sc.nextInt();
12 sc.nextLine();
13 System.out.println("输入的整数是:"+s1);
14
15 System.out.print("请输入第二个字符串:");
16 s2=sc.nextLine();
17 System.out.println("输入的字符串是:"+s2);
18 }
19
20 }

运行结果

2.


Scanner除了可以获取键盘输入外,也可以获取文件中的内容,将文件中的内容一行一行的输入出来

如果文档在项目中


1 import java.io.File;
2 import java.io.FileNotFoundException;
3 import java.util.Scanner;
4
5
6 /**
7 * 利用Scanner读取项目中的文档
8 * */
9 public class TestScannerRead {
10
11 public static void main(String[] args){
12
13 Scanner sc;
14 try {
15 //读取项目中的文档
16 sc = new Scanner(new File("ScannerTest.txt"));
17 System.out.println("项目中的文本内容是:");
18 //通过判断是否有下一行来输出文档内容
19 while (sc.hasNextLine()) {
20 System.out.println(sc.nextLine());
21 }
22 } catch (FileNotFoundException e) {
23 // TODO Auto-generated catch block
24 e.printStackTrace();
25 }
26 }
27 }

如果从本地读取文档


1 import java.io.FileInputStream;
2 import java.io.FileNotFoundException;
3 import java.util.Scanner;
4
5 /**
6 * 利用Scanner读取本地的文件
7 * */
8 public class TestScannerRead {
9
10 public static void main(String[] args){
11 FileInputStream fis;
12 try {
13 //利用文件上传功能
14 fis = new FileInputStream("D:\\\\text\\\\ScannerTest.txt");
15 //设置文件编码
16 Scanner sc = new Scanner(fis,"UTF-8");
17 System.out.println("本地文件内容:");
18 //输出文件内容
19 while (sc.hasNextLine()) {
20 System.out.println(sc.nextLine());
21 }
22 } catch (FileNotFoundException e) {
23 // TODO Auto-generated catch block
24 e.printStackTrace();
25 }
26 }
27 }

 




推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
沈驰27
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有