2012-01-02 35 views
3

我有一個程序,我試圖從一個由逗號分隔的字符串中取一組數字,並將它們放入一個ArrayList;不過,我不太清楚如何去做。到目前爲止,我所做的是把字符串轉換字符數組,然後通過轉換成字符整數:如何從一個字符串中取數字並將它們放入一個數組ListList

Character.digit(temp[i], 10) 

這個例子是一個for循環迭代一個字符串。比如說"1,2,3,4"。取出新的char數組的第一個元素並將其轉換爲int。

我的問題是,

  • 答:必須有這樣做的更好的方法。
  • B:如果您得到2位或3位數字,會發生什麼情況,例如"34,2,3,65,125"。當我需要它作爲一個元素時,這些將作爲數組的單獨元素存儲。
  • C:如果數字是負數,會發生什麼,如果負數是2或3位數字,會發生什麼?例如,"-123,45,3,4,-6"

請記住,這意味着任何String參數。

這裏有很多的條件,我不知道如何解決它們。

+2

這是功課嗎?如果是的話請貼上標籤。 – dasblinkenlight 2012-01-02 14:05:47

回答

2

你可能只是做:

String input = "-12,23,123123"; 
String[] numbers = input.split(","); 
List<Integer> result = new ArrayList<Integer>(); 
for(String number : numbers){ 
    result.add(Integer.parseInt(number)); 
} 
7

考慮使用

關於 「任何字符串參數,」 你有一個選擇:要麼上沒有逗號分隔的數字或字符串失敗重新定義任務。編程的本質在於:您需要定義一切。最簡單的方法(通常是最安全的)是在發現意外事件時失敗。 Java會在這種情況下爲你做,所以很享受。

1

首先使用String.split()分割輸入String。然後嘗試Integer.parseInt()

2

使用String.split()功能,打破你的字符串不同串中,基於分隔:

String input="-123,45,3,4,-6"; 
    String[] vals=input.split(","); 

    List<Integer> numbers=new ArrayList<Integer>(vals.length); 
    for(String val:vals) { 
     numbers.add(Integer.valueOf(val)); 
    } 
1
String testStr = "123,456,789"; 
String tokens[] = testStr.split(","); 

ArrayList<Integer> numList = new ArrayList<Integer>(); 
for(int i = 0; i < tokens.length; i++) 
{  
    try 
    { 
     Integer num = new Integer(tokens[i]); 
     numList.add(num); 
    } 
    catch(NumberFormatException e) 
    { 
     //handle exception 
    } 
} 
0

您還可以使用的StringTokenizer分裂將字符串轉換爲子字符串,然後使用Integer.parseInt將它們轉換爲整數。

1
String input="-123,45,3,4,-6, a"; 
String[] vals=input.split(","); 

List<Integer> numbers=new ArrayList<Integer>(vals.length); 
for(String val:vals) { 
    try { 
     int a = Integer.valueOf(val); 
     numbers.add(a); 
    } catch (NumberFormatException e) { 
     // TODO: handle exception 
    } 
} 

使用此代碼。通過使用它,你也可以避免非整數值。

+2

請不要抓住'Exception'。謝謝。 – alf 2012-01-02 14:28:15

+1

如果U不捕捉異常,則Ur循環不會迭代整個數組列表。 – Yogee 2012-01-03 05:34:22

+0

好的做法是隻捕捉你所知道的;捕獲'NumberFormatException'很好,正如預期的那樣。捕捉「例外」是一種不好的做法,應該不鼓勵。 – alf 2012-01-03 07:46:18

相關問題