【问题标题】:Convert ArrayList <Characters> into a String [duplicate]将 ArrayList <Characters> 转换为字符串 [重复]
【发布时间】:2012-01-15 23:16:23
【问题描述】:

有没有一种简单的方法可以将只包含字符的 ArrayList 转换为字符串?所以说我们有

ArrayList<Character> arrayListChar = new ArrayList<Character>();
arrayListChar.add(a);
arrayListChar.add(b);
arrayListChar.add(c);

所以数组列表包含 a、b 和 c。理想情况下,我想做的是把它变成一个字符串“abc”。

【问题讨论】:

标签: java string arraylist


【解决方案1】:
Iterator<Character> it = arrayListChar.iterator();
StringBuilder sb = new StringBuilder();

while(it.hasNext()) {
    sb.append(it.next());
}

System.out.println(sb.toString());

【讨论】:

    【解决方案2】:

    您可以使用Apache Common Lang's StringUtils 类。它有一个 join() 函数,就像你在 PHP 中找到的那样。

    然后是代码:

    StringUtils.join(arrayListChar, "")
    

    会产生:

    abc
    

    【讨论】:

      【解决方案3】:
          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);
      

      【讨论】:

        【解决方案4】:

        您可以覆盖它的toString 方法并在其中实现String 格式。

        【讨论】:

          【解决方案5】:

          重写 ArrayList 的 toString 方法或更好地扩展 ArrayList 类,以便您可以在代码的其他地方使用旧的 ArrayList toString()

          【讨论】:

            【解决方案6】:

            使用正则表达式魔法:

            String result = list.toString().replaceAll(", |\\[|\\]", "");
            

            获取列表的String表示形式,即

            [a, b, c]
            

            然后删除字符串"[", "]", and ", "

            【讨论】:

              【解决方案7】:
                  String s = "";
                  for(Character i : arrayListChar)
                         s += i;
              

              编辑 - 正如已经指出的那样,如果要连接的字符串数量很少,您应该只使用这样的代码。

              【讨论】:

              • 字符串是不可变的,您将为每个连接创建一个新字符串。非常糟糕的内存使用。尝试使用 StringBuilder。
              猜你喜欢
              • 2017-04-10
              • 2012-05-18
              • 2016-06-28
              • 2012-10-04
              • 2016-10-30
              • 2012-12-26
              • 2019-09-04
              • 2012-04-28
              • 2017-11-08
              相关资源
              最近更新 更多