簡體   English   中英

將arraylist int轉換為字符串

[英]Converting arraylist int to string

我正在嘗試將整數數組列表反向轉換為字符串。 例如(1,2,3,4)轉換為“ 4321”。

但是,由於原始數據類型錯誤(基本上是為什么給我一個arraylist來做數組的事情),所以我無法使我的代碼正常工作。 我的代碼是當前

  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;
}
  • 您的循環范圍有誤,並且沒有執行任何操作,因為您以;終止了循環;
  • 另外, 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(); 

你有很多問題。 首先,您應該刪除; for循環之后。

其次,您不連接結果,而只是保存最后一個值。

第三,您應該從最后一個索引arrList.size() - 1循環。

第四,請注意,位置0處的元素也應計數,因此您應將條件更改為i >= 0

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

現在,在您了解了問題所在之后,我想提出一個使用Java 8的更好的解決方案:

Collections.reverse(arrList);
String listString = arrList.stream().map(Object::toString)
                    .collect(Collectors.joining(""));
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;
}

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

暫無
暫無

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

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