Android RxJava Kotlin如何从单个可观察对象中获取分离对象<;字符串>;
RxJava Kotlin flatmap不会从拆分的字符串返回分离的对象。相反,它返回列表Android RxJava Kotlin如何从单个可观察对象中获取分离对象<;字符串>;,android,kotlin,observable,flatmap,Android,Kotlin,Observable,Flatmap,RxJava Kotlin flatmap不会从拆分的字符串返回分离的对象。相反,它返回列表 val source: Observable<String> = Observable.just("521934/2342/FOXTROT") .flatMap{Observable.fromArray(it.split("/"))} .subscribe{Log.d(TAG, "$it")} 但这本书(Thomas Nield:Learning RxJava/2017/Page 114)
val source: Observable<String> = Observable.just("521934/2342/FOXTROT")
.flatMap{Observable.fromArray(it.split("/"))}
.subscribe{Log.d(TAG, "$it")}
但这本书(Thomas Nield:Learning RxJava/2017/Page 114)说它必须返回分隔的字符串
521934
2342
FOXTROT
表示它返回单个对象。在我的例子中,我得到了一个列表对象。所以,文件上说是真的。但我想得到书中例子中的结果
如何拆分列表并获取分离的对象?利用
flatMapIterable
,可以从列表中获取项目流:
Observable.just("521934/2342/FOXTROT")
.flatMap { input -> Observable.fromArray(input.split("/")) }
.flatMapIterable { items -> items }
.subscribe { item -> Log.d(TAG, item) }
只需使用Iterable中的
:
Observable.just("521934/2342/FOXTROT")
.flatMap { Observable.fromIterable(it.split("/")) }
.subscribe{
Log.d(TAG, "$it")
}
对于数组,您必须额外使用扩展运算符,因为fromArray
采用vararg参数列表:
Observable.fromArray(*arrayOf("521934","2342","FOXTROT"))
Observable.fromArray(*arrayOf("521934","2342","FOXTROT"))