java中Scanner类nextLine()、next()、hasNext()等总结
来源:互联网 发布:查询python版本 编辑:程序博客网 时间:2024/05/16 07:36
一、java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。
使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流 、字符串中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可接受文件、输入流、字符串作为数据,用于从文件、输入流、字符串中解析数据。
二、Scanner主要提供了两个方法来扫描输入:
(1) hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果需要判断是否包含下一个字符串,可以省略Xxx.
(2) nextXxx():获取下一个输入项。Xxx的含义与前一个方法中Xxx相同。
Scanner sc = new Scanner(System.in);int i = sc.nextInt();
Scanner sc = new Scanner(new File("myNumbers")); while (sc.hasNextLong()) { long aLong = sc.nextLong(); }
三、事实上,Scanner提供了两个简单的方法来逐行读取:
(1) boolean hasNextLine():返回输入源中是否还有下一行。
(2)String nextLine():返回输入源中的下一行的字符串。
四、关于分割符
在默认情况下,Scanner使用空白(包括空格、Tab空白、回车)作为多个输入项之间的分隔符。
Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符
public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las"); //Scanner使用useDelimiter(String pattern)方法设置分隔符。下面设置使用回车作为分隔符, //sc.useDelimiter("\n"); while (s.hasNext()) { System.out.println(s.next()); } }结果:123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las
五、next() 、nextLine()区别
1.next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。next方法不能得到带空格的字符串。
2. nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
3. next()和nextLine(),这两个方法返回的都是String类型的。
package sort;import java.util.Scanner;public class Main{ public static void main(String[] args){ String str = null; String str2; Scanner in = new Scanner(System.in); while(in.hasNext()){ str2 = in.next(); System.out.println("next:"); System.out.println(str2); str = in.nextLine(); System.out.println("nextLine:"); System.out.println(str); str = null; } in.close(); }}
结果:
asd kjlsnext:asdnextLine: kjls
关于结束hasNext():
想要结束循环,在Windows环境下,需要输入Ctrl+Z;而在Unix环境下,需要输入Ctrl+D。注意,这是输入,而不是对控制台进行操作。这相当于向控制台输入一个字符,这个字符代表EOF,此时hasNext()方法返回false,循环结束。
例子:
public static void main(String[] args){ String str = null; Scanner in = new Scanner(System.in); System.out.println("请输入,按Enter键换行,按Ctrl+Z结束。"); while(in.hasNext()){ str = in.nextLine(); System.out.println(str); str = null; } in.close();}
- java中Scanner类nextLine()、next()、hasNext()等总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- JAVA中Scanner类中,next()与nextLine()的异同
- java中Scanner类中next()与nextLine()的区别
- Java中Scanner类的next()和nextLine()方法对比
- java中Scanner类next()和nextline()注意事项
- Java之Scanner类中next()和nextLine()的区别
- Scanner中next()和nextLine()
- java Scanner 中 next()方法和nextLine()区别
- Java控制台输入Scanner中next和nextLine的区别
- JAVA笔记-Scanner中next()与nextLine()
- 浅析Java中Scanner的next()和nextLine()方法
- Java中Scanner的nextLine()与next()的区别
- Java中Scanner的next()和nextLine()区别
- Java的Scanner中next()、nextLine()的区别
- Java的Scanner类中next()方法与nextLine()方法的区别
- Thrift
- windows下多线程简单demo
- USACO-Section2.3 prefix[DP]
- SSH三大框架整合步骤
- 对象的内存布局
- java中Scanner类nextLine()、next()、hasNext()等总结
- 反转单词顺序列
- EventBus3.0(一)之使用
- 集合框架
- JavaScript学习笔记: 局部变量和全局变量
- JVM知识点总结(一):概览
- MySQL创建用户与授权方法
- MVC架构中,用户的请求
- LeetCode Find Bottom Left Tree Value