首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符的ArrayList转换为字符串?

将字符的ArrayList转换为字符串?
EN

Stack Overflow用户
提问于 2011-06-13 05:34:32
回答 7查看 69.2K关注 0票数 38

如何在Java中将ArrayList<Character>转换为String

List.toString方法将其作为[a,b,c]字符串返回-我希望去掉方括号(etcetera)并将其存储为abc

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-13 05:39:10

您可以遍历列表并创建字符串。

String getStringRepresentation(ArrayList<Character> list)
{    
    StringBuilder builder = new StringBuilder(list.size());
    for(Character ch: list)
    {
        builder.append(ch);
    }
    return builder.toString();
}

StringBuilder的容量设置为列表大小是一个重要的优化。如果不这样做,一些append调用可能会触发构建器的内部调整大小。

另外,toString()返回一个人类可读的ArrayList内容格式。不值得花时间从其中过滤掉不必要的字符。它的实现明天可能会改变,你将不得不重写你的过滤代码。

票数 37
EN

Stack Overflow用户

发布于 2016-09-13 16:18:21

您可以使用toString()和RegExp来完成,而不需要任何循环和流:

List<Character> list = Arrays.asList('a', 'b', 'c'); String s = list.toString().replaceAll("[,\\s\\[\\]]", "");

票数 2
EN

Stack Overflow用户

发布于 2019-07-04 11:32:20

使用Joiner类的join

// create character list and initialize 
List<Character> arr = Arrays.asList('a', 'b', 'c');   
String str = Joiner.on("").join(arr);
System.out.println(str);

使用toString,然后删除, and spaces

import com.google.common.base.Joiner; 

....
<Character> arr = Arrays.asList('h', 'e', 'l', 'l', 'o'); 
// remove [] and spaces 
String str = arr.toString() 
          .substring(1, 3 * str.size() - 1) //3 bcs of commas ,
          .replaceAll(", ", ""); 
System.out.println(str);

或者使用streams:

import java.util.stream.Collectors; 
...
// using collect and joining() method 
String str =  arr.stream().map(String::valueOf).collect(Collectors.joining()); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6324826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档