Java 输入

最近在参加春招的时候遇到许多ACM模式的笔试,需要从控制台中读入,这篇文章系统讲一下Java如何处理输入的。

直接从控制台读入

jdk 5.0新增加了Scanner类,Scanner是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配(可以使用s.useDelimiter("Pattern || String")指定分隔符)。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

新建一个Scanner对象

1
Scanner input= new Scanner(System.in);

接受 String类型

1
String str=input.next();

接受 int类型

1
String str=input.next();

在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scannernext()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。

一行输入多个数 通过空格隔开

1
2
3
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] numstr = str.split(" ");

输入未知行数

1
2
3
4
5
Scanner in =  new Scanner(System.in);   
while(in.hasNext()){
String str = in.nextLine();
System.out.println(str);
}

从文件读入

1
2
3
4
5
6
7
8
public static void main(String[] args) throws FileNotFoundException {
File f= new File("src\\1.txt");
Scanner input= new Scanner(System.in);
while(input.hasNext()){
String str =input.next();
System.out.println(str);
}
}

注意文件相对路径的写法 在这里文件结构如下

image-20220315151757957

Author

Pemp

Posted on

2022-03-15

Updated on

2022-03-15

Licensed under

Comments