我在一行中有空格分隔的整数,并希望使用BufferedReader输入它们。 ** 整数之间可能有多个空格。可能有前导和尾随空格**
现在我有以下代码,
`
int[] a = new int[1000001]; // integer array
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n; // no of integers
int n = Integer.parseInt(br.readLine());
String[] s = br.readLine().split(" "); //taking input
for(int i=1;i<=n;++i)
{
a[i] = Integer.parseInt(s[i]);
}
`
它没有用。请帮忙。任何帮助或建议将不胜感激。感谢。
编辑:1 - 我使用了split(“\ s +”)。但这需要关注整数之间的多个空格......前导和尾随空间怎么样???如何处理它们??
答案 0 :(得分:2)
使用split("\\s+")
它应该可以解决问题。它告诉split()
使用一个或多个空格字符作为两个标记之间的分隔符。
另外你应该在读取int读取的数量而不是分配一个太大的int之后为你分配int [],这会浪费你的内存
答案 1 :(得分:0)
您可以先读取该行,然后使用正则表达式将所有空格替换为仅有一个空格。然后你可以像上面那样拆分它。如果您需要进一步的帮助或代码示例,请与我们联系。
编辑:NumberFormatException可能是因为Integer.parseInt试图解析超出整数值的东西。请尝试Long.parseLong。