我正在尝试将整数的arraylist转换为反向的字符串。 例如(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;
}
答案 0 :(得分:3)
;
终止了它。 arrList[i]
是访问数组元素的方法。要访问ArrayList的元素,请使用arrList.get(i)
。 最后,在将它们转换为String之前,应该在某处累积字符/数字。我建议使用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();
答案 1 :(得分:0)
你有很多问题。首先,您应该在;
循环后移除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(""));
答案 2 :(得分: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;
}
答案 3 :(得分: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();