每次需要整数数组时,我都会使用以下代码:
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数组转换为整数数组?
答案 0 :(得分:1)
根据我的经验StringTokenizer比调用split
表现更好。之后,我将令牌转换为整数,就像你一样。我认为这是输入一行打印的一系列整数的最佳表现方法。这是thread,其中讨论和衡量了不同的方法。
另外我想指出的是,这是大多数编程竞争对手使用的方法,例如传奇人物Petr Mitrichev,因此我相信它是你能得到的最好的。
答案 1 :(得分:1)
使用java 8,它非常简单,只有一行:
int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();