有没有更好的方法将String数组转换为整数数组?

时间:2014-12-22 13:36:07

标签: java arrays io

每次需要整数数组时,我都会使用以下代码:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int[] a =new int[str.length];
int j = 0;
for(String i : str)
  a[j++]=Integer.parseInt(i);

我使用BufferedReader而不是Scanner来减少输入时的时间复杂度。然而,当数组大小相对较大(> 100)时,我想知道这种方法是否比Scanner更有效。在这种情况下,有没有更好的方法将String数组转换为整数数组?

2 个答案:

答案 0 :(得分:1)

根据我的经验StringTokenizer比调用split表现更好。之后,我将令牌转换为整数,就像你一样。我认为这是输入一行打印的一系列整数的最佳表现方法。这是thread,其中讨论和衡量了不同的方法。

另外我想指出的是,这是大多数编程竞争对手使用的方法,例如传奇人物Petr Mitrichev,因此我相信它是你能得到的最好的。

答案 1 :(得分:1)

使用java 8,它非常简单,只有一行:

int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();