如何移除每个Arraylist项中的\n

4

我将一些数据提取到了一个ArrayList中。在每个项目中都有几个换行符(\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

3个回答

5

更改

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

to

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

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


5
您可以将所有的方法替换为以下方式:

您可以将所有的方法替换为以下方式:

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

4
你可以对它们执行流式处理映射
idList.stream()
    .map(str -> str.replaceAll("\n", ""))
    .collect(Collectors.toList());

这将对每个元素应用函数str -> str.replaceAll("\n", "")并将它们收集回列表。您可以使用此方法代替您的MemberIDList方法。

附注:在Java中,方法名称以小写字母开头。


谢谢,我已经重命名了我的方法。我很快会查阅更多关于流和映射的资料。 - Trinity

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接