我们在学前面最基础的语法中并没有出现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。我们可以通过Scanner类来获取用户的输入。
基本语法是:Scanner scan=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们需要使用hasNext()与hasNextLine判断是否还有输入数据。
下面我们就来测试一下程序和人是如何交互的。
import java.util.Arrays; import java.util.Scanner; public class MyJava { public static void main(String[] args) { //创建一个扫描器对象,用于接收用户的输入 Scanner scan=new Scanner(System.in);//System.in 表示输入,就像我们经常使用的System.Out一样表示输出 System.out.println("使用next方法接收:"); //判断用户有没有输入的字符串 if (scan.hasNext() ) { String str=scan.next();//接收用户输入的字符串 System.out.println(str); } } }
从上面的测试可以看出,当我输入“你好! 世界”的时候,是不是输出了字符串。但是仔细看却发现是不是只输出“你好!”
上面我们用的next(),接下来我们用nextLine()方法接着往下测试:
import java.util.Arrays; import java.util.Scanner; public class MyJava { public static void main(String[] args) { //创建一个扫描器对象,用于接收用户的输入 Scanner scan=new Scanner(System.in);//System.in 表示输入,就像我们经常使用的System.Out一样表示输出 System.out.println("使用nextLine方法接收:"); //判断用户有没有输入的字符串 if (scan.hasNextLine() ) { String str=scan.nextLine();//接收用户输入的字符串 System.out.println(str); } } }
从上面的测试可以看出使用nextLine()方法可以输出完整的字符串。
接着往下测试:
通过上面的测试可以看出,其实不用if,也一样可以实现正常的输入输出。
那么今天的内容是不是就将完了呢?答案是否定的。有一个问题大家通常都会忽略,那就是用完Scanner的时候必须要把他关掉,这样能节省资源。
这样今天的内容就讲完了,接下来我们总结一下:
next():
1,一定要读取到有效字符才可以结束输入。
2,对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3,只有输入有效字符后才能将其后面输入的空白作为分隔符或者结束符。
4,next()不能得到带有空格的字符(结论)
nextLine():
1,以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2,可以获取空白。