首先我要提一下,我在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}}将获得34
,y
将获得abc
。这在使用扫描仪时会起作用,但问题是扫描仪超时我正在做的练习,因为它很慢。
是否有任何简单的方法可以将这些输入空间分开,就像使用Scanner一样?
答案 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());