【问题标题】:How to I use replaceAll method with stream如何在流中使用 replaceAll 方法
【发布时间】:2018-06-22 10:39:12
【问题描述】:

您好,我在 db 中有一个这些字段:

 String abcTitlename;
 String abcTitlepage;

我想从实体中获取这些字段,但我想使用没有'abc'前缀。 示例

我的字段是 abcTittlename 名称,但我想获得这个名称。

我可以使用过滤器获取这些字段吗?我可以使用 replaceAll 方法做到这一点吗?像这样:

 .filter(field -> field.getName().replaceAll("abc","") 

我的完整代码是:

            stream = stream.filter(e -> ((DbFields) e).getIscomputed().equals(0));
        }
        return stream.map(e -> ((DbFields) e).getFieldname().toLowerCase(Locale.US)).collect(Collectors.toSet());

    }

我有 DbFields 类,它有 getFieldName()、getFieldtype() 与方法。

如何将此行添加到此代码中

stream = stream.map(e -> ((DbFields) e).getFieldname().replace("abc", ""));

请帮帮我..

【问题讨论】:

  • 之后得到什么?字段列表?字符串列表?
  • field 到底是什么?发布minimal reproducible example
  • 如您所见,这是一个字符串。所以没有必要使用流。流旨在用于数据的(例如列表)。
  • 字段列表@azro

标签: java java-stream


【解决方案1】:

这个怎么样,

.map(field -> field.getName().replaceAll("abc","") )

可以举一个更通用的例子。

Set<String> replacedList = strList.stream()
    .map(s -> s.replaceAll("abc", ""))
    .collect(Collectors.toSet());

为此,您必须使用 map 而不是 filter

【讨论】:

  • 更新了答案以返回Set
猜你喜欢
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2013-09-03
  • 2016-08-27
相关资源
最近更新 更多