Java 如何从文件中获取除以#开头的行以外的行,仅使用cactoos

Java 如何从文件中获取除以#开头的行以外的行,仅使用cactoos,java,oop,cactoos,Java,Oop,Cactoos,任务是仅使用cactoos库从文件中获取除以#开头的行以外的所有行。 我得到了以下解决方案: Iterable<Text> data = new Filtered( (Func<Text, Boolean>) text -> !text.asString().startsWith("#"), new Split(

任务是仅使用cactoos库从文件中获取除以#开头的行以外的所有行。 我得到了以下解决方案:

        Iterable<Text> data =
            new Filtered(
                    (Func<Text, Boolean>) text -> !text.asString().startsWith("#"),
                    new Split(
                            new TextOf(file),
                            new TextOf("\\n")
                    )
            );
是否可以仅使用cactoos库类执行此操作


您喜欢哪种解决方案?

StartsWith
已存在于cactoos中,尽管它是
Scalar

新过滤(
新分裂(
新文本(文件),
新文本(“[\r\n]+”)
),
x->new Not(新的StartsWith(x,new TextOf(“#”))
)
import org.cactoos.Scalar;
import org.cactoos.Text;
import org.cactoos.text.TextOf;

public final class StartsWith implements Scalar<Boolean> {
    private final Text origin;
    private final Text prefix;

    public StartsWith(String origin, String prefix) {
        this(new TextOf(origin), new TextOf(prefix));
    }

    public StartsWith(Text origin, Text prefix) {
        this.origin = origin;
        this.prefix = prefix;
    }

    @Override
    public Boolean value() throws Exception {
        return origin.asString().startsWith(prefix.asString());
    }
}
new Filtered<>(
    new Split(
        new TextOf(file),
        new TextOf("[\r\n]+")
    ),
    x -> new Not(new StartsWith(x, new TextOf("#")))
)