【问题标题】:How to remove \n in every Arraylist item如何在每个 Arraylist 项目中删除 \n
【发布时间】:2020-01-06 23:40:10
【问题描述】:

我将一些数据提取到 Arraylist 中。在每个 Item 中都有几个换行符 (\n),我想在之后去掉它们。

我试过这样做:

public List<String> MemberIDList() {

    // Getting the ArrayList
    idList =  listProjection.getIDListOfMembers();

    for (int i = 0; idList.size() > i; i++) {
       String item = idList.get(i);
        item.replaceAll("\n", "");
    }

    return idList;
}

如果我在控制台上打印出来,它仍然包含所有换行符:

The ID ...... (not null) 
     145     
     145

谢谢

编辑:我还想过滤不必要的空格。有没有比将答案运行两次以下更好的选择。有空格----------这么大。

idList.replaceAll(item -> item.replaceAll("\\s{2,}", "").trim());

我明白了:D

【问题讨论】:

    标签: java regex string arraylist java-8


    【解决方案1】:

    改变

    item.replaceAll("\n", "");
    

    idList.set(i,item.replaceAll("\n", ""));
    

    item.replaceAll 不会修改item 引用的String 的状态(这是不可能的,因为String 是不可变的)。它会返回一个新的String

    【讨论】:

      【解决方案2】:

      您可以将所有方法替换为这样:

      public List<String> memberIDList() {
          idList.replaceAll(item -> item.replaceAll("\n", ""));
          return idList;
      }
      

      【讨论】:

        【解决方案3】:

        你可以streammap他们:

        idList.stream()
            .map(str -> str.replaceAll("\n", ""))
            .collect(Collectors.toList());
        

        这会将函数str -&gt; str.replaceAll("\n", "") 应用于每个元素并将它们收集回列表。您可以使用它来代替 MemberIDList 方法。

        P.S.:java中方法名以小写开头。

        【讨论】:

        • 谢谢我重命名了我的方法。很快就会查找更多关于流和地图的信息。
        猜你喜欢
        • 2016-05-23
        • 2013-08-31
        • 2014-05-17
        • 1970-01-01
        • 2012-05-29
        • 2019-10-25
        • 1970-01-01
        • 2019-07-01
        相关资源
        最近更新 更多