如何在流中使用replaceAll方法

时间:2018-06-22 10:39:13

标签: java java-stream

您好,我在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", ""));

请帮助我。

1 个答案:

答案 0 :(得分:1)

怎么样,

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

可以给出一个更通用的示例。

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

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