这里说的输入和输出,不是我们经常理解的输入流和输出流,而是可以和用户交互的输入和输出模式,也就是我们编写一个程序,可以让用户输入内容,同时可以根据用户输入的内容,输出对应的结果。
Scanner类属于java.util包,提供了许多方法,可用来方便地读入不同类型的输入值。比如从键盘输入、从文件中输入等。
常用构造器:
Scanner scan = new Scanner(文件);
Scanner scan = new Scanner(输入流);
全部构造器:
Scanner(File source)
Scanner(File source, String charsetName)
Scanner(InputStream source)
Scanner(InputStream source, String charsetName)
Scanner(Path source)
Scanner(Path source, String charsetName)
Scanner(Readable source)
Scanner(ReadableByteChannel source)
Scanner(ReadableByteChannel source, String charsetName)
Scanner(String source)
来看几个简单demo,demo1:
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(true) {
System.out.print("请输入内容:");
String content = scan.nextLine();
System.out.println("您输入的内容:"+content);
if("bye".equals(content)) {
break;
}
}
}
}
/* 输出
请输入内容:Hello itzhimei
您输入的内容:Hello itzhimei
请输入内容:Hello itzhimei2
您输入的内容:Hello itzhimei2
请输入内容:bye
您输入的内容:bye
Process finished with exit code 0
*/
demo2:
import java.util.Scanner;
public class TestScanner2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入内容:");
String content = scan.nextLine();
while(content != null) {
System.out.println("您输入的内容:"+content);
if("bye".equals(content)) {
break;
}
System.out.print("请输入内容:");
content = scan.nextLine();
}
}
}
/* 输出
请输入内容:haha1
您输入的内容:haha1
请输入内容:haha2
您输入的内容:haha2
请输入内容:haha3
您输入的内容:haha3
请输入内容:bye
您输入的内容:bye
Process finished with exit code 0
*/
demo3
import java.util.Scanner;
public class TestScanner4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
String content = scan.next();
System.out.println("您输入的内容:"+content);
if("bye".equals(content)) {
break;
}
}
}
}
/* 输出
a
请输入内容:您输入的内容:a
b
请输入内容:您输入的内容:b
c
请输入内容:您输入的内容:c
bye
请输入内容:您输入的内容:bye
Process finished with exit code 0
*/