[英]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.