【问题标题】:How to transform a list into a string? [duplicate]如何将列表转换为字符串? [复制]
【发布时间】:2015-08-01 07:28:05
【问题描述】:

我有字符串列表

List<String> lst;

我需要将该列表转换为字符串,如下所示:

List<String> lst = new ArrayList<String>();
lst.add("String 1");
lst.add("String 2");
lst.add("String 3");

我想得到的字符串是:

"String 1 + String 2 + String 3"

如果

List<String> lst = new ArrayList<String>();
lst.add("String 1");

那我只想要String 1

如果lst.isEmpty() 那么我想要""

是否有可能以灵活的方式做到这一点并避免编写多个if-else if

UPD:我在Java 7

【问题讨论】:

  • Joiner,或者切换到Java 8,有很多选择。
  • 我们不是已经在 SO 上解决了这个问题吗?
  • @MarounMaroun Java 8 中可能的解决方案是什么?
  • @St.Antario 这在骗局中有解释。

标签: java string list


【解决方案1】:

假设您只想使用本机 Java(并且不想使用像 Apache 这样的第三方库),并且想要 1.7,我真的看不出有一个简单的 for 循环和简单条件的方法.

我不确定这是否是“多个if-else-if,但这似乎相当简单:

List<String> lst = new ArrayList<String>();
lst.add("String 1");
lst.add("String 2");
lst.add("String 3");

StringBuilder output = new StringBuilder();
int size = lst.size();
for (int i = 0; i < size; i++) {
    output.append(lst.get(i));
    if (i < size - 1)
        output.append(" + ");
}

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

希望这会有所帮助。

【讨论】:

  • 最好使用StringBuilder 而不是+ 运算符。当您的列表变大时,您会注意到差异。
  • 我同意@MarounMaroun。
  • 是的,你是对的。谢谢 :) 我已经编辑了我的答案以使用 StringBuilder
  • @MarounMaroun 是的,感谢您告诉我,请检查编辑后的答案
  • @OriLentz 最后一点,编译会优化循环体中的lst.size(),不用担心。将其移到外面不会提高性能。
【解决方案2】:

会吗?

public static void main(String[] args) {

    ArrayList<String> list = new ArrayList<String>();
    list.add("String 1");
    list.add("String 2");
    list.add("String 3");

    StringBuilder convert = new StringBuilder();
    convert.append(list.isEmpty() ? "" : list.get(0));

    for(int i = 1 ; i < list.size() ; i ++ ) {
        convert.append(" + ").append(list.get(i)));
    }

    System.out.println(convert.toString());
}

【讨论】:

  • 再次,建议使用StringBuilder 而不是+
  • convert.append(" + " + list.get(i)) this + 也应该替换为 StringBuilder 函数并且&amp;&amp; list.size() &gt;= 1 是不必要的。
  • @findusl 挑剔的人:P,检查编辑。谢谢:)
猜你喜欢
  • 2012-05-23
  • 1970-01-01
  • 2011-02-08
  • 2013-07-07
  • 2019-10-16
  • 2021-06-11
  • 2023-01-04
相关资源
最近更新 更多