1

StringObservable


の紹介


RxJava



String

シーケンスを操作するのは難しいかもしれません。幸運にも


RxJavaString


は必要なユーティリティを全て提供してくれます。

この記事では、いくつかの役に立つ

String

演算子を含む

StringObservable

について説明します。したがって、始める前に、次のリンクを見てみることをお勧めします。リンク:/rx-java[ava]


2 Mavenのセットアップ

まず始めに、依存関係の中に

RxJavaString

を含めます。

<dependency>
  <groupId>io.reactivex</groupId>
  <artifactId>rxjava-string</artifactId>
  <version>1.1.1</version>
</dependency>

rxjava

__- string

__の最新バージョンはhttps://search.maven.org/classic/#search%7Cgav%7C1%7Cg%3A%22io.reactivex%22%20AND%20a%3A%22rxjava-string%にあります22[メイヴン中央]。


3

StringObservable




  • St​​ringObservable

    は、符号化された

    Strings


    **

    __.

    __の潜在的に無限のシーケンスを表すための便利な演算子です。

演算子

from

は入力ストリームを読み込み、バイト配列の文字境界シーケンスを出力する

Observable

を作成します。


無限ストリームの読み取り、幅= 380、高さ= 178


CC-BY

で使用されています。


from

演算子を使用して

InputStream

から直接

Observable

を作成できます。

TestSubscriber testSubscriber = new TestSubscriber();
ByteArrayInputStream is = new ByteArrayInputStream("Lorem ipsum loream, Lorem ipsum lore".getBytes());
Observable<byte[]> observableByteStream = StringObservable.from(is);
//emits 8 byte array items
observableByteStream.subscribe(testSubscriber);


4バイトから

Strings


への変換

さまざまな文字セットからの無限シーケンスのエンコード/デコードは、

decode

および

encode

演算子を使用して実行できます。

彼らの名前が示唆するように、これらは単にバイト配列または

Stringsのエンコードまたはデコードされたシーケンスを発する

Observable__を作成するでしょう。

バイト配列

Observable

をデコードする:

TestSubscriber testSubscriber = new TestSubscriber();
ByteArrayInputStream is = new ByteArrayInputStream(
  "Lorem ipsum loream, Lorem ipsum lore".getBytes());
Observable<byte[]> byteArrayObservable = StringObservable.from(is);
Observable<String> stringObservable = StringObservable
  .decode(byteArrayObservable, StandardCharsets.UTF__8);
//emits UTF-8 decoded strings,"Lorem ipsum loream, Lorem ipsum lore"
stringObservable.subscribe(testSubscriber);


5分割

文字列



StringObservable

には、

String

シーケンスを分割するための便利な演算子もいくつかあります。


StringObservable.splitで文字列をrxjavaに分割する、幅= 382、高さ= 176


Reactivex.io

によって

TestSubscriber testSubscriber = new TestSubscriber();
Observable<String> sourceObservable = Observable.just("Lorem ipsum loream,Lorem ipsum ", "lore");
Observable<String> splittedObservable = StringObservable.split(sourceObservable, ",");
//emits 2 strings "Lorem ipsum loream", "Lorem ipsum lore"
splittedObservable.subscribe(testSubscriber);


6. 文字列を結合する

前のセクションの演算子を補完するものとして

join



stringConcat

があります。これらは

String


Observable

からの項目を連結して、区切り文字を与えられた単一の文字列を出力します。

また、これらは出力を出す前にすべてのアイテムを消費することに注意してください。


文字列を結合するStringObservable.join、幅= 380、高さ= 175


Reactivex.io

によって

TestSubscriber testSubscriber = new TestSubscriber();
Observable<String> sourceObservable = Observable.just("Lorem ipsum loream", "Lorem ipsum lore");
Observable<String> joinedObservable = StringObservable.join(sourceObservable, ",");
//emits single string "Lorem ipsum loream,Lorem ipsum lore"
joinedObservable.subscribe(testSubscriber);


7. 結論


StringObservable

の簡単な紹介では、

RxJavaStringを使用した

String__操作のいくつかのユースケースを示しました。

このチュートリアルの例および

StringObservable

演算子の使用方法の他の例は、https://github.com/eugenp/tutorials/tree/master/rxjava[Githubに追加]で見つけることができます。