亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據流中的元素動態劃分連續的 RXJava 流?

如何根據流中的元素動態劃分連續的 RXJava 流?

慕仙森 2022-09-22 20:05:27
最簡單的例子是像這樣的字符串流:["3", "a", "b", "c", "1", "a", "2", "a", "b"]數字表示它的組應該包含多少個元素。非常重要的一點是,流是連續的,所以我們不能只是等待下一個數字來分割流。據我所知,RXJava2中沒有內置功能var flowable = Flowable.concat(Flowable.fromArray("3", "a", "b", "c", "1", "a", "2", "a", "b"), Flowable.never());flowable/*Something here*/.blockingSubscribe(System.out::println);預期的輸出將是:[3, a, b, c][1, a][2, a, b]
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

我后來發現了阿卡諾克的RxJava2擴展包。使用它,我能夠構建這個,它可以做我想要的:

var flowable = Flowable.concat(Flowable.fromArray("3", "a", "b", "c", "1", "a", "2", "a", "b"), Flowable.never());

flowable.compose(FlowableTransformers.bufferUntil(new Predicate<>() {

    private int remaining = 0;

    @Override

    public boolean test(String next) {

        if(next.chars().allMatch(Character::isDigit)) {

            remaining = Integer.parseInt(next);

        }

        return --remaining < 0;

    }

})).blockingSubscribe(System.out::println);


查看完整回答
反對 回復 2022-09-22
  • 1 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號