java:使用BufferedReader输入多个空格

时间:2014-07-10 00:34:30

标签: java input bufferedreader spaces

我在一行中有空格分隔的整数,并希望使用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 +”)。但这需要关注整数之间的多个空格......前导和尾随空间怎么样???如何处理它们??

2 个答案:

答案 0 :(得分:2)

使用split("\\s+")它应该可以解决问题。它告诉split()使用一个或多个空格字符作为两个标记之间的分隔符。

另外你应该在读取int读取的数量而不是分配一个太大的int之后为你分配int [],这会浪费你的内存

答案 1 :(得分:0)

您可以先读取该行,然后使用正则表达式将所有空格替换为仅有一个空格。然后你可以像上面那样拆分它。如果您需要进一步的帮助或代码示例,请与我们联系。

编辑:NumberFormatException可能是因为Integer.parseInt试图解析超出整数值的东西。请尝试Long.parseLong。