是否有一种简单的方法将只包含字符的ArrayList转换为字符串?所以说我们有
ArrayList<Character> arrayListChar = new ArrayList<Character>();
arrayListChar.add(a);
arrayListChar.add(b);
arrayListChar.add(c);
因此数组列表包含a,b和c。理想情况下,我想要做的是将其转换为字符串“abc”。
答案 0 :(得分:3)
Iterator<Character> it = arrayListChar.iterator();
StringBuilder sb = new StringBuilder();
while(it.hasNext()) {
sb.append(it.next());
}
System.out.println(sb.toString());
答案 1 :(得分:3)
您可以使用Apache Common Lang's StringUtils类。它有一个join()
函数,就像你在PHP中找到的那样。
然后是代码:
StringUtils.join(arrayListChar, "")
将生成:
abc
答案 2 :(得分:1)
int size = list.size();
char[] chars = new char[size];
for (int i = 0; i < size; i++) {
if (list.size() != size) {
throw new ConcurrentModificationException();
}
chars[i] = list.get(i);
}
String s = new String(chars);
答案 3 :(得分:0)
您可以覆盖它的toString
方法并在其中实施String
格式。
答案 4 :(得分:0)
覆盖ArrayList的toString方法或更好地扩展ArrayList类,以便您可以在代码中的其他地方使用旧的ArrayList toString()
答案 5 :(得分:0)
String s = "";
for(Character i : arrayListChar)
s += i;
编辑 - 正如已经指出的那样,如果连接的字符串数量很少,你应该只使用这样的代码。
答案 6 :(得分:0)
使用正则表达式魔法:
String result = list.toString().replaceAll(", |\\[|\\]", "");
获取列表的字符串表示形式,即
[a, b, c]
然后删除字符串"[", "]", and ", "
。