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
将得到 34
,y
将得到 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());
首先我想提一下,我在 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
将得到 34
,y
将得到 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());