【问题标题】:ArrayList. Joining String values in one index [duplicate]数组列表。在一个索引中连接字符串值[重复]
【发布时间】:2018-05-12 12:39:46
【问题描述】:

我想有人已经在问这个问题了,但还是这样。

我有随机字符串值的 ArrayList,我需要将这些值放入另一个 ArrayList 但只在一个索引中。

例子:

我有

{ "hey","how","are","you"} 

我需要做到这一点

{"Hey how are you"} 

有没有像 join 或 smth 这样的命令?因为我尝试将另一个字符串值添加到同一个索引,但它只是替换了它。

【问题讨论】:

  • 你尝试过什么吗?
  • 对于 StackOverflow 问题,请更具体。显示您尝试过的确切代码并解释发生了什么。这个问题在不到十分钟的时间内有五个答案这一事实对于这个问题的质量来说并不是一个好兆头。编辑:现在是八点。走人走!得到那甜蜜的业力!
  • 我已经尝试过 StringJoiner 的方式,它当然有效。谢谢你们。我刚开始编程,这就是为什么我找不到正确答案的原因。

标签: java arraylist


【解决方案1】:

Java 8 添加了一个 StringJoiner 类,它完全符合您的要求(以下代码在 Java 9 中):

    List<String> list = List.of("hey", "how", "are", "you");
    StringJoiner joiner = new StringJoiner(" ");
    list.forEach(str -> joiner.add(str));
    System.out.println(joiner.toString()); // hey how are you
    // and if you want the final result to be in a list
    // Java 9:
    list = List.of(joiner.toString());
    // anything before Java 9
    list = Arrays.asList(joiner.toString());

另一种(更简单)的方法(从 Java 8 开始):

String.join(" ", list)

【讨论】:

  • downvoter - 愿意发表评论吗?
  • OP 没有表现出任何努力,我相信我们应该投票结束这个问题而不是回答它。
  • @haifzhan 感谢您的回复。这不是否决答案的好理由。如果将鼠标悬停在向下箭头上,您会看到它会向您显示一个工具提示:“此答案没有用”。因此,即使有人认为 question 是有问题的 - 这应该 not 成为否决答案的原因。否决答案的唯一正当理由是它没有用处!
  • 我同意@haifzhan。答案没用,因为问题没用。对于一个无用的问题,你不可能有一个有用的答案。这一切只会增加噪音。
  • @DavidS 我不同意你们两个,任何想要加入字符串的人,谷歌搜索并发现这个问题现在至少可以看到 3 种不同的方法。即使 OP 没有表现出努力,我也认为这个问题很有用(我同意这不是一个好的行为)。
【解决方案2】:

一个解决方案是这样的:

List<String> result = new ArrayList<>(Arrays.asList(myList.stream().collect(Collectors.joining(" "))));

【讨论】:

    【解决方案3】:

    您可以为该解决方案使用 StringJoiner。

    List<String> mainList = new ArrayList<>();  //The one to contain all Strings from yourList
    List<String> yourList = Arrays.asList("Hey", "how", "are", "you");    //The list of Strings
    
    StringJoiner joiner = new StringJoiner(" "); //Space as delimiter, strings will be separated with spaces
    for (String s : yourlist) {
        joiner.add(s);
    }
    mainList.add(joiner.toString());    //Add the new concatenated String to your list, in a single string
    

    【讨论】:

      【解决方案4】:

      commons.lang3.StringUtils

      StringUtils.join(对象数组[],字符串分隔符)

      https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

      【讨论】:

        【解决方案5】:

        使用StringBuilder 连接多个字符串

        StringBuilder sb = new StringBuilder();
        listA.forEach(item -> sb.append(item));
        
        listB.add(sb.toString());
        

        【讨论】:

          猜你喜欢
          • 2017-12-10
          • 1970-01-01
          • 1970-01-01
          • 2018-01-13
          • 1970-01-01
          • 2019-10-12
          • 2021-11-02
          • 2018-10-15
          • 2018-08-23
          相关资源
          最近更新 更多