Java中控制台输入数据主要使用java.util.Scanner类
Scanner介绍:
1)从JDK5.0开始,java.util包中增加了Scanner类,
它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
把所输入的内容传给Scanner,作为扫描对象。
如果要获取输入的内容,则只需要调用Scanner的nextLine()等方法即可。
2)Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符
3)Scanner多个输入时,可以按空格键或回车键输入下一个数据,最后按回车键结束输入
4)Scaner的几个方法:
delimiter()
返回此 Scanner 当前正在使用的匹配分隔符 Pattern。
useDelimiter(String pattern)
设置Scanner 新的分隔符pattern
hasNext()
判断当前扫描位置后是否还存在数据,存在返回true,否false
其他方法等具体查看API
代码演示一、:
输入字符串、整数等常见输入
public static void testScanner()
{
Scanner scanner = new Scanner(System.in);
// String str = scanner.nextLine(); //一次输入一行
String str = scanner.next();
int i = scanner.nextInt();
System.out.println("字符串:"+str+", 整数:"+i);
scanner.close();
Scanner s = new Scanner("12 45 sd fd,gd 5445 r.tg 46,64|sd");
// s.useDelimiter(","); //以“,”作为分隔符
// s.useDelimiter("\\|"); //以“|”作为分隔符
s.useDelimiter(" |,|\\.|\\|");//使用空格或逗号或点号或“|”作为分隔符
while(s.hasNext()){
System.out.println(s.next());
}
s.close();
}
控制台:
dfsa 4654 (<--输入)
字符串:dfsa, 整数:4654
12
45
sd
fd
gd
5445
r
tg
46
64
sd
代码演示二、:
多行数据输入并获取(输入0退出)
public static void testManyInput()
{
String str1;
String str2;
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
str1 = sc.nextLine();
if(str1.equals("0")){
break;
}
str2 = sc.nextLine();
String[] s1 = str1.split(" ");
for (String string : s1) {
System.out.print(string+" ");
}
System.out.println();
String[] s2 = str2.split(" ");
for (String string : s2) {
System.out.print(string+" ");
}
}
sc.close();
}
控制台:
1 df 56
2 45 dfdfd 45
1 df 56
2 45 dfdfd 45
0
代码演示三、:
包含空格的数据输入
public static void testBufferedReader()
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String read = br.readLine();
System.out.println(read);
} catch (IOException e) {
e.printStackTrace();
}
}
控制台:
gfds 456465 fdgdgf
gfds 456465 fdgdgf
<^_^>