总结Java中的next()和nextLine()方法的区别

来源:互联网 发布:贵金属行情分析软件 编辑:程序博客网 时间:2024/06/06 16:32

首先,我把next()、nextInt()等方法当做一类来看待。next()方法会过滤掉前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉,只有在读取到有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为结束符。所以next()方法不能得到带空格的字符串。

而nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

例如:

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String a = scan.next();String b = scan.nextLine();System.out.println(a);System.out.println(b);}}/*input: a b coutput:a b c以上说明next()方法过滤掉了"a"前面的空格,遇到"a"后的空格后结束了输入,最后得到的结果是"a"。接着nextLine()从"a"后开始读取,它读取了包括"a"之后空格的一整行数据,直到遇到"c"后的回车,最后读取到的数据是" b c"。*//* 假如我们换种特殊输入呢?input:abcoutput:abc以上我们只输入了"abc"和回车键,next()方法在读取到"abc"之后遇到回车结束,而nextLine()方法则立即读到了回车并结束,所以nextLine()方法读到了一个空串。*/



原创粉丝点击