2015-05-24 188 views
2

我想將整數列表轉換爲反向字符串。例如(1,2,3,4)轉換爲「4321」。將arraylist int轉換爲字符串

但是,我無法讓我的代碼工作,主要是由於原始數據類型錯誤(基本上爲什麼你給我的數組列表做一個數組事情)。我的代碼是目前

public String toString() { 
     int n = arrList.size(); 
     if (n == 0) 
      return "0"; 

     for (int i = arrList.size(); i > 0; i--); 
     int nums= arrList[i]; 
     char myChar = (char) (nums+ (int) '0'); 
     String result = myChar.toString(arrList); 

     return result; 
} 

回答

3
  • 你的循環有錯誤的範圍,並沒有做任何事情,因爲你;終止它。
  • 另外,arrList[i]是訪問數組元素的方式。要訪問ArrayList的元素,請使用arrList.get(i)
  • 最後,您應該在將字符/數字轉換爲字符串之前累積字符/數字。我建議一個StringBuilder。

    StringBuilder sb = new StringBuilder(); 
    for (int i = arrList.size() - 1; i >= 0; i--) { 
        int num = arrList.get(i); 
        sb.append(num); 
    } 
    String result = sb.toString(); 
    
0

你有很多的問題。首先,您應該在for循環後刪除;

其次,你沒有連接結果,只保存最後的值。

三,你應該從最後一個索引,即arrList.size() - 1循環。

第四,請注意位置0處的元素也應計算在內,所以您應該將條件更改爲i >= 0

最後,訪問arraylist的元素應該使用方法getarrList.get(i)。現在

您瞭解之後你的問題是什麼,我想建議使用Java 8更好的解決方案:

Collections.reverse(arrList); 
String listString = arrList.stream().map(Object::toString) 
        .collect(Collectors.joining("")); 
+0

我想初始列表應該在最後倒過來。 –

+0

@SashaSalauyou OP可以輕鬆地做到這一點,如果他們需要。我會留給他。 – Maroun

0
public String toString() { 
     int n = arrList.size(); 
     if (n == 0) 
      return "0"; 

     String str = "" ; 
     for (int i = arrList.size()-1; i > 0; i--){ 
     int nums= arrList.get(i); 
     str+= nums ; 
     } 


     return str; 
} 
0

一個的ListIterator工作過 - 如果你不想索引。

ArrayList<Integer> integerList = new ArrayList<Integer>(); 
StringBuilder sb = new StringBuilder(); 
ListIterator<Integer> it = integerList.listIterator(integerList.size()); 


while(it.hasPrevious()) 
{ 
    sb.append(Integer.toString(it.previous())); 
} 

String answer = sb.toString();