[英]Replace string in ArrayList
我是字符串来替换列 ArrayList 中的字符串。 我在表达式上遇到错误
Bad return type in lambda expression: String cannot be converted to Articles
articlesArrayList.replaceAll(articles -> articles.getAuthor().replace("."," "));
replaceAll
方法试图返回一组文章。 您的函数映射返回的是一个字符串。 如果你想替换'.' 每个作者都带有 ' ' 的字符,请改用ArrayList.forEach
方法。
class Main {
public static void main(String[] args) {
new Main().replace();
}
public void replace() {
List<Article> articlesArrayList = new ArrayList<>();
articlesArrayList.add(Article.builder().author("Sagar.Gangwal").build());
articlesArrayList.stream().forEach(article -> article.getAuthor().replaceAll(".", " "));
articlesArrayList = articlesArrayList.stream()
.map(a -> this.update(a)).collect(Collectors.toList());
System.out.println(articlesArrayList.get(0));
}
private static Article update(Article a) {
a.author = a.getAuthor().replaceAll("\\.", " ");
return a;
}
}
你可以看到上面的代码。
在这里,我试图创建流,然后 foreach 流的元素,我想用 '.' 更新 AuthorName。 到空间。
articlesArrayList.stream().map(a -> this.update(a)).collect(Collectors.toList());
您需要使用流 API,然后使用自定义更新方法来更新值。
也用于替换'.'
,您还需要使用转义字符。 String
类的replaceAll
方法包含第一个参数作为regular expression
。
如果你看到这个,我正在逃避'.'
用'\\\\.'
. a.getAuthor().replaceAll("\\\\.", " ");
因此,代替replaceAll
,您可以使用 replace 方法,该方法只需将第一个参数作为简单地用传递的目标字符替换一个字符即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.