Java中next()方法与nextLine()方法的区别
- 共同点: 二者都是读取一个字符串。
-
不同点
- 但是next()方法是碰到定界符(the delimiter)就会暂停输入,所以它并不能输入空格、Tab键这种“特殊”的字符;
- nextLine()方法是遇到回车才算输入结束,所以就会把空格、Tab键这种”不特殊”的键也包括进去。
- 另外,next()方法是不会接受换行字符的,意思是说,你在控制台输入字符的时候,无论敲多少次回车,都不会影响你的第一个字符的输入。
- 但是nextLine()方法却不同,它接收回车的输入,并把它作为定界符。
- 所以平常我们在使用控制台输入的时候,就要牢记这种使用nextLine()方法导致吃掉我们定义的字符串吸收了回车,导致无法顺利读入我们想要的字符串的情况!如下例:
package liu.shen.pat.jan; import java.util.Scanner; public class Main { public static void main(String args[]) { input(); } public static void input() {//输入数据 Scanner scan = new Scanner(System.in); int number = scan.nextInt();//输入一个整型数据 number,并按下回车当做结束 String str = scan.nextLine(); System.out.println("the number your input is:"+number); System.out.println("the string your input is:"+str); } }
- 所以平常我们在使用控制台输入的时候,就要牢记这种使用nextLine()方法导致吃掉我们定义的字符串吸收了回车,导致无法顺利读入我们想要的字符串的情况!如下例:
运行的效果如下所示: