簡體   English   中英

快速將String轉換為Java中的int數組

[英]Convert String to int array in Java the fast way

有誰知道將字符串轉換為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);

當您想用單個字符(在您的情況下為空格)分割時,使用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]);

這適用於任何數量的數字。

如果您使用的是Java8或更高版本,則可以通過編寫以下單行代碼來獲得預期的輸出。

String str= "4 343 234 -24";

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

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

用模式\\\\s+分隔輸入將處理一個或多個空格字符,不僅數字之間出現空格,而且還包括空格。

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

mapToInt方法返回提供toArray方法的IntStream 此方法返回一個包含IntStream元素的IntStream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM