BufferedReader space 分离输入

BufferedReader space separated input

首先我想提一下,我在 java 方面并没有真正的经验,我在 Whosebug 上搜索了我的问题的解决方案,但我没有找到它或不明白答案, 所以我现在问:

我想开始使用 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 并由 space 分隔一起输入,x 将得到 34y 将得到 abc。这在使用 Scanner 时会起作用,但问题是 Scanner 使我正在做的练习超时,因为它很慢。

有什么简单的方法可以像使用扫描仪一样分离这些输入 space 吗?

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

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

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

试试这个,

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

这比 string.split() 快;

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

split()函数拆分输入并从数组中访问它

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

String line = input.readLine();
int x = Integer.parseInt(line.split(" ")[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());