java中nextLine和next的区别

Python035

java中nextLine和next的区别,第1张

一、含义不同:

next碰到空格或者任意空字符就算结束,而nextLine全部识别。

二、使用不同:

用next,第一次取的是abc,第二次取的是def,第三次取的是ghij

用nextLine,第一次取的是abc def ghij,第二次取的是kl mno pqr st,第三次取的是uvw xyz,前一个是以回车或空格为分隔符,一次取一个单词,后一个是以回车为分隔符,一次取一行。

init()

}//初始化!

privatestaticvoidinit()

{

System.out.println("next演示")

Scannersc=newScanner(System.in)

Stringa=sc.next()

Scannerss=newScanner(System.in)

Stringb=ss.nextLine()

标志

+Folder 指定包含您想显示的消息的文件夹。

-header 显示已显示消息的一行描述。该描述包含文件夹名称和消息号。这是缺省值。

-help 列出命令语法、可用的切换和版本信息。

注:对于 MH,必须全部拼出该标志的名称。

-noheader 防止显示每条已显示消息的一行描述。

以上内容参考:百度百科-next

in.nextLine()返回的是一个长度为0的空字符串:

可以在input = in.nextLine()后加

System.out.prinln("前"+input+"后,字符长度="+input.length())

你就能看到

next()要得到有效标记才能返回值,而nextLine()则不管这个,只要有当前行就能返回,当前行的剩余字符是0个照样返回。

修改方法有两种:

1、在每次in.nextDouble()后加一句in.nextLine()就不会出现这个问题了。

因为nextDouble没有义务处理换行,要用nextLine来处理换行,这样后面的input = in.nextLine()时没有新行,就会等待输入。

2、把while判断改为while(!input.equals("Y"))或者while (input.equals("N")&&(input.length()!=0))