[英]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
。
最后,應使用get
: arrList.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.