0

我想构建一个迭代给定字符串中的字符的异步操作。我有一个 char 数组,由"mystring".toCharArray(). 我想使用 RX 迭代每 10 个字符。

我知道我可以使用AsyncTask和 for 循环来做到这一点,但我认为 RX 会是更优雅的解决方案。我已阅读文档,但不知道该怎么做。

我脑海中的另一个想法是创建一个PublishSubjectonNext()在一个 for 循环中触发,该循环的索引随着订阅增加 10。

PS:"mystring"可以更大,如 json、xml 等。请随时评论 ram profiling。

4

1 回答 1

3

RxJava 不支持原始数组,但您可以使用range运算符形式的 for 循环并索引原始数组。通过一些索引算法,您可以轻松获取每 10 个字符:

char[] chars = ...

Observable.range(0, chars.length)
    .filter(idx -> idx % 10 == 0)
    .map(idx -> chars[idx])
    .subscribe(System.out::println);
于 2018-02-01T19:51:56.317 回答