原创java
Java中Scanner类中的方法next()和nextLine()都是吸收输入台输入的字符,区别:spa
1 import java.util.Scanner; 2 import java.util.Vector; 3 4 public class Main{ 5 public static void main(String args[]) { 6 Scanner reader=new Scanner(System.in); 7 String s1=reader.nextLine(); 8 String s2=reader.next(); 9 System.out.println(s1); 10 System.out.println(s2); 11 } 12 }
运行样例:3d
能够看到next()只吸收了askldfj字符,空格后面的都舍弃了!code
1 import java.util.Scanner; 2 import java.util.Vector; 3 4 public class Main{ 5 public static void main(String args[]) { 6 Scanner reader=new Scanner(System.in); 7 String s1=reader.next(); 8 // String ss=reader.nextLine(); 9 String s2=reader.nextLine(); 10 System.out.println(s1); 11 System.out.println(s2); 12 } 13 }
将next()和nextLine()换个顺序blog
运行样例:class
只输入了aaaa bbbb cccc,系统自动输出了两行:import
aaaa程序
bbbb cccc方法
由于aaaa后面有个空格,next是不须要的,因此next读取结束,剩菜剩饭 bbbb cccc被nextLine捡了im
解决方法是加上上面代码注意的 nextLine()
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s1=reader.next(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }
abcdefg
abcdefg
//剩下两行
输入abcdefg后回车程序已经结束了,而后输出了abcdefg和两行换行,缘由是由于nextLine吸取了next后的回车。因此要十分注意的是,两个nextLine尽可能不要连在一块儿。而使用next不会出现这种状况,由于next吸收的第一个要求的是字符,最后一个要求是空格、Tab键、回车键。
20:25:47
2018-08-14