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我啥都要)
import java.util.Scanner; public class SubLoop { public static void main(String[] args) { String s1,s2; Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个字符串:");
s1=sc.nextLine();
System.out.println("输入的字符串是:"+s1); System.out.print("请输入第二个字符串:");
s2=sc.next();
System.out.println("输入的字符串是:"+s2); }
}
运行结果
next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
nextLine()方法的结束符只是Enter键
交换上述两个字符串的next和nextLine
nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法从键盘输入值。
经过验证,其他的next的方法,如nextDouble() ,nextFloat() ,nextInt() 等与nextLine()连用时都存在这个问题。
解决的办法是:
在每一个 next()、nextDouble() 、nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。(顽皮点说,因为nextLine啥都要,所以有时候要错了空格,等不到所需输入)
import java.util.Scanner; public class Lianxi { public static void main(String[] args) { String s2;
int s1;
Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个整数:");
s1=sc.nextInt();
sc.nextLine();
System.out.println("输入的整数是:"+s1); System.out.print("请输入第二个字符串:");
s2=sc.nextLine();
System.out.println("输入的字符串是:"+s2);
} }
运行结果
2.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner; /**
* 利用Scanner读取项目中的文档
* */
public class TestScannerRead { public static void main(String[] args){ Scanner sc;
try {
//读取项目中的文档
sc = new Scanner(new File("ScannerTest.txt"));
System.out.println("项目中的文本内容是:");
//通过判断是否有下一行来输出文档内容
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果从本地读取文档
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner; /**
* 利用Scanner读取本地的文件
* */
public class TestScannerRead { public static void main(String[] args){
FileInputStream fis;
try {
//利用文件上传功能
fis = new FileInputStream("D:\\text\\ScannerTest.txt");
//设置文件编码
Scanner sc = new Scanner(fis,"UTF-8");
System.out.println("本地文件内容:");
//输出文件内容
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java Scanner类的使用的更多相关文章
- Java-Runoob:Java Scanner 类
ylbtech-Java-Runoob:Java Scanner 类 1.返回顶部 1. Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Sc ...
- Java - 18 Java Scanner 类
java.util.Scanner是Java5的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner ...
- 12-01 Java Scanner类,Scanner类中的nextLine()产生的换行符问题
分析理解:Scanner sc = new Scanner(System.in); package cn.itcast_01; /* * Scanner:用于接收键盘录入数据. * * 前面的时候: ...
- Java Scanner 类,获取用户输入的值
Scanner 类使用步骤 1.导入java.util.Scanner import java.util.Scanner; 2.创建Scanner对象 Scanner scan = new Scann ...
- java Scanner类与String类
Scanner类的使用: 导入Scanner包,new Scanner对象,记得调用System.in参数,调用对应next方法实现键盘录入. import java.util.Arrays; i ...
- Java Scanner类中next()和nextLine()方法的区别
今天在练习中遇到了调用Scanner类中的nextLine()输入字符串自动跳过的问题,在博客上看了两篇解答,原来是nextLine()误认了前面next()输入时的Enter,但还是想了一会儿才弄清 ...
- Java Scanner类
package io; import java.util.*; public class useScanner { public static void main(String[] args) { S ...
- Java Scanner 类
下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); Scanner -是java类库的一个基础类,一个可以使用正则表达式来解析基本类型 ...
- java Scanner类注意事项
1,循环或递归调用获取数字时,不能用hasNextInt()判断是否有输入,不然会陷入死循环,应该用hasNext().获取也不能用nextInt(),应用next(),否则也会死循环 例如这段代码, ...
随机推荐
- SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
物料号:1301002696 工厂代码:2160 MB5B,如下查询条件, 查询结果中,期初与期末库存数量都是0,期间的出库入库数量都是0.事实上该物料期初应该是有库存的.并且我用MB51相同时间段查 ...
- 自定义控件详解(三):Canvas效果变换
Canvas 画布 从前面我们已经知道了 Canvas 类可以绘出 各种形状. 这里学习一下Canvas 类的变换效果(平移,旋转等) 首先需要了解一下Canvas 画布, 我们用Canvas.Dra ...
- 安卓preview不显示的问题
Render Problem Failed to load AppCompat ActionBar with unknown error 解决方法:将styles.xml文件中的: <resou ...
- Git的安装配置(win环境)
安装: 首先安装win版本的git msysgit:https://git-for-windows.github.io 注:安装时要勾选生成桌面快捷方式. 默认安装完后依次执行: $ git conf ...
- woff字体MIME类型配置
<system.webServer> <staticContent> <remove fileExtension=".woff" /> < ...
- 【PAT】B1036 跟奥巴马一起编程(15)(15 分
#include<stdio.h> int main() { int row,col; char c; scanf("%d %c",&col,&c); ...
- Web自动化
# -*- coding:utf-8 -*- ''' Created on Oct 17, 2018 @author: SaShuangYiBing Comment: ''' from seleniu ...
- 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)
好,现在进入高阶代码篇. 目的: 爬取昆明市中学的兴趣点POI. 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894 ...
- salt安装及使用部分笔记
安装脚本install_salt.sh: #!/bin/bash####安装第三方yum源rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel ...
- 安装eclipse、maven等JAVA开发环境
一 下载JAVA,这是官方JAVA8的下载地址,包含了JDK和JRE: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-dow ...