我想构建一个异步操作,迭代给定字符串中的字符。我有一个由"mystring".toCharArray()
拍摄的字符数组。我想使用RX迭代每个第10个字符。
我知道我可以用AsyncTask和for循环来做,但我认为RX会更优雅的解决方案。我已阅读documentations,但不知道该怎么做。
我的另一个想法是在for循环中创建PublishSubject并触发onNext()
,索引会在订阅时增加10。
PS:"mystring"
可以像json,xml等更大一些。请随时评论ram profiling。
答案 0 :(得分: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);