[英]RxJava Kotlin how to get separated objects from single observable<String>
RxJava Kotlin平面图不会从分割的字符串中返回分离的对象。 而是返回列表
val source: Observable<String> = Observable.just("521934/2342/FOXTROT")
.flatMap{Observable.fromArray(it.split("/"))}
.subscribe{Log.d(TAG, "$it")}
返回列表:
[521934, 2342, FOXTROT]
但是本书( Thomas Nield:Learning RxJava / 2017 /第114页 )说它必须返回分离的字符串
521934
2342
FOXTROT
http://reactivex.io/documentation/operators/flatmap.html表示它返回单个对象。 就我而言,我得到了“单一列表”对象。 所以,文档说的是真的。 但是我想得到像书中的例子那样的结果!
如何拆分列表并获取分离的对象?
利用flatMapIterable
,因此您可以从列表中获得一系列的项目:
Observable.just("521934/2342/FOXTROT")
.flatMap { input -> Observable.fromArray(input.split("/")) }
.flatMapIterable { items -> items }
.subscribe { item -> Log.d(TAG, item) }
只需使用fromIterable
:
Observable.just("521934/2342/FOXTROT")
.flatMap { Observable.fromIterable(it.split("/")) }
.subscribe{
Log.d(TAG, "$it")
}
在数组的情况下,由于fromArray
需要一个vararg参数列表,因此您将不得不使用扩展运算符:
Observable.fromArray(*arrayOf("521934","2342","FOXTROT"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.