将arraylist int转换为string

时间:2015-05-24 07:16:07

标签: java string arraylist

我正在尝试将整数的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;
}

4 个答案:

答案 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

最后,应使用getarrList.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();