2011-08-09 201 views
3

我有一個String [],其中每個元素都可以轉換爲整數。我可以將其轉換爲int []的最佳方式是什麼?Java將String []轉換爲int []

int[] StringArrayToIntArray(String[] s) 
{ 
    ... ? ... 
} 
+0

看起來非常像功課,道歉,如果它不是。 – Woot4Moo

+0

這不是功課,謝謝。 –

回答

11
public static int[] StringArrToIntArr(String[] s) { 
    int[] result = new int[s.length]; 
    for (int i = 0; i < s.length; i++) { 
     result[i] = Integer.parseInt(s[i]); 
    } 
    return result; 
} 

只需通過字符串數組迭代並轉換的每個元素。

注意:如果您的任何元素無法解析到int此方法將引發異常。爲了防止發生這種情況,每次撥打Integer.parseInt()時應該放在try/catch區塊中。

+1

不要忘記try/catch塊 – Woot4Moo

+2

@Woot,asker指定每個元素都可以轉換爲int,所以我故意忽略它。 – jjnguy

+1

確實,謝謝,正是我在找的! –

2

隨着Guava

return Ints.toArray(Collections2.transform(Arrays.asList(s), new Function<String, Integer>() { 
    public Integer apply(String input) { 
     return Integer.valueOf(input); 
    } 
}); 

誠然,這是不是有史以來最乾淨的使用,但由於Function可能是在其他地方宣佈它可能仍然是清潔的。

0

這是將字符串轉換爲Int的簡單方法。

String str = "15"; 
int i; 

i = Integer.parseInt(str) 

這裏有一個例子是,你做一些數學與用戶輸入:

int i; 
String input; 
i = Integer.parseInt(str) 
input = JOptionPane.showMessageDialog(null, "Give me a number, and I'll multiply with 2") 
JOptionPane.showMessageDialog(null, "The number is: " + i * 2); 

輸出:

彈出:與說的輸入框的對話框:給我一個號碼,我會用2

彈出乘以:該號碼是:inputNumber * 2

1

現在日在Java終於抓住了功能編程,有一個更好的答案:

int[] StringArrayToIntArray(String[] s) 
{ 
    return Stream.of(arr).mapToInt(Integer::parseInt).toArray(); 
}