簡體   English   中英

如何從字符串中取數字並將它們放入arrayList中

[英]How to take numbers from a string and put them into an arrayList

我有一個程序,我試圖從逗號分隔的字符串中取一組數字,並將它們放入ArrayList ; 但是,我不太清楚該怎么做。 到目前為止,我所做的是將String轉換為一個字符數組,然后使用以下方法將字符轉換為整數:

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參數都是String

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

考慮使用

關於“任何String參數”,您可以選擇:對不是以逗號分隔的數字的字符串進行失敗或重新定義任務。 這就是編程的本質:你需要定義一切。 最簡單的方法(也是最安全的方法)是每當你看到意想不到的東西時都會失敗。 在這種情況下,Java會為你做,所以盡情享受吧。

你可以這樣做:

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

使用String.split()函數根據分隔符在不同的字符串中斷開String:

    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));
    }

首先使用String.split()拆分輸入String 然后嘗試Integer.parseInt()

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
   }
}
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
    }
}

使用此代碼。 通過使用它,您還可以避免非整數值(如果有)。

您還可以使用StringTokenizer將字符串拆分為子字符串,然后使用Integer.parseInt將它們轉換為整數。

暫無
暫無

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

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