用Java快速将String转换为int数组

时间:2017-12-21 12:36:32

标签: java arrays string int

有没有人知道更快的方法将字符串转换为int数组?

Java V7

给出的格式为“4 343 234 -24”,依此类推。数字之间的空格,数字的数量是已知的,就像数字范围内的

一样
long[] array = new long[length];            
for (int i = 0; i < length - 1; i++) {
    array[i] = Integer.parseInt(n.substring(0, n.indexOf(' ')));
    n = n.substring(n.substring(0, n.indexOf(' ')).length() + 1);
}
array[length - 1] = Integer.parseInt(n);

3 个答案:

答案 0 :(得分:0)

当您想要按单个字符(在您的情况下为空格)拆分时,使用String.split()是最有效的。

如果你的目标是在按空格分割时获得最大效率,那么这将是一个很好的解决方案:

List<Integer> res = new ArrayList<>();
Arrays.asList(kraft.split(" ")).forEach(s->res.add(Integer.parseInt(s)));
Integer[] result = res.toArray(new Integer[0]);

这适用于任意数量的数字。

答案 1 :(得分:0)

如果您使用的是Java8或更高版本,则可以通过编写以下单行代码来获得预期的输出。

String str= "4 343 234 -24";

int[] intArr=Stream.of(str.split(" ")).mapToInt(Integer::parseInt).toArray();

System.out.println(Arrays.toString(intArr));

答案 2 :(得分:0)

使用模式\\s+分隔输入将处理一个或多个空格字符,不仅是数字之间的空格。

Stream.of(input.split("\\s+")).mapToInt(Integer::parseInt).toArray();

mapToInt方法返回提供IntStream方法的toArray。此方法返回一个包含IntStream元素的数组。