BufferedReader空间分隔输入

时间:2015-06-03 08:22:59

标签: java input bufferedreader

首先我要提一下,我在java中并不是很有经验,我搜索StackOverFlow来解决我的问题,要么我找不到它,要么我不理解答案,所以我现在问:

我想开始使用BufferedReader,并没有找到任何我理解的指南,所以我从这里和那里拿到了一些并写下了这个例子:

BufferedReader input = new BufferedReader (new InputStreamReader (System.in));
int x = Integer.parseInt(input.readLine());
String y = input.readLine();
System.out.println(x);

此代码适用于输入34,然后输入abc,但在我尝试实现的内容时,我需要将由空格分隔的输入34 abc一起输入并x 1}}将获得34y将获得abc。这在使用扫描仪时会起作用,但问题是扫描仪超时我正在做的练习,因为它很慢。

是否有任何简单的方法可以将这些输入空间分开,就像使用Scanner一样?

5 个答案:

答案 0 :(得分:6)

试试这个,

StringTokenizer tk = new StringTokenizer(input.readLine());
int m = Integer.parseInt(tk.nextToken());
String s = tk.nextToken();

这比string.split()更快;

答案 1 :(得分:0)

如果要从同一行读取2个值,则无法将整行解析为Integer。这给出了NumberFormatException。

首先阅读该行,然后将其拆分为' ',然后将第一部分解析为整数。

String line = reader.readLine();
String[] splitLine = line.split(" ");
Integer x = Integer.parseInt(splitLine[0]);
String y = splitLine[1];

答案 2 :(得分:0)

String line = input.readLine();
String []tokens = line.split(" ");
int x = Integer.parseInt(tokens[0]);
String y = tokens[1];

使用split()功能拆分输入并从阵列

访问它

答案 3 :(得分:0)

您是否无法在String.split()上使用input.readLine()功能?

String line = input.readLine();
int x = Integer.parseInt(line.split(" ")[0]);

答案 4 :(得分:0)

您可以读取由空格分隔的同一行中的多个整数,例如:1 5 5;使用以下示例。

StringTokenizer tk = new StringTokenizer(input.readLine());
int a = Integer.parseInt(tk.nextToken());
int b = Integer.parseInt(tk.nextToken());
int c = Integer.parseInt(tk.nextToken());