2017-04-13 27 views
2

我有一個逗號分隔的字符串轉換爲整數數組,我使用下面的方法來做到這一點,請建議是否有任何簡單的方法來做到這一點。將逗號分隔的字符串轉換爲整數數組的最佳方法

Integer[] statusCodes = Arrays 
     .stream(Arrays 
       .stream(statusText.split(",")) 
       .map(String::trim) 
       .mapToInt(Integer::valueOf) 
       .toArray() 
     ) 
     .boxed() 
     .toArray(Integer[]::new); 
+1

甚至有沒有理由使用mapToInt,因爲這需要整數返回通過的valueOf()和unboxes它。只需使用map(Integer :: valueOf) –

回答

5

你不需要外流。還退貨類型Integer.valueOf已經是Integer(它是Integer.parseInt其中返回int)所以你甚至不需要boxed()它。只需使用map而不是mapToInt

Integer[] array = Arrays.stream(" 1,2, 3, 4".split(",")) 
     .map(String::trim) 
     .map(Integer::valueOf) 
     .toArray(Integer[]::new); 

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

輸出:[1, 2, 3, 4]

+0

感謝您提出更好的方法 – karayi

+0

@karayi歡迎您。 – Pshemo

+0

@karayi順便說一句,如果你相信某些答案(沒有必要我的)完全解決你的問題,你可以隨時將它標記爲解決方案。有關它的更多信息,請參見[「接受答案如何工作?」](http://meta.stackexchange.com/a/5235) – Pshemo

0

另一個版本看起來如下:

Integer[] statusCodes = Stream.of(statusText.split(",")).map(Integer::valueOf).toArray(Integer[]::new); 
相關問題