RxJava StringObservable

RxJava StringObservable

1. StringObservableの概要

RxJavaStringシーケンスを操作するのは難しいかもしれません。幸い、RxJavaStringは必要なすべてのユーティリティを提供してくれます。

この記事では、いくつかの役立つString演算子を含むStringObservableについて説明します。 したがって、開始する前に、まずIntroductiontoRxJavaを確認することをお勧めします。

2. Mavenセットアップ

開始するには、依存関係にRxJavaStringを含めましょう。


  io.reactivex
  rxjava-string
  1.1.1

rxjava-stringの最新バージョンは、Maven Centralで入手できます。

3. StringObservable

StringObservableは、エンコードされたStringsの潜在的に無限のシーケンスを表すための便利な演算子です。 .

演算子fromは、入力ストリームを読み取り、バイト配列の文字境界シーケンスを出力するObservableを作成します。

Reading an infinite stream

Reactivex.ioによって、CC-BYの下で使用されます

from演算子を使用して、InputStreamから直接Observableを作成できます。

TestSubscriber testSubscriber = new TestSubscriber();
ByteArrayInputStream is = new ByteArrayInputStream("Lorem ipsum loream, Lorem ipsum lore".getBytes());
Observable observableByteStream = StringObservable.from(is);

// emits 8 byte array items
observableByteStream.subscribe(testSubscriber);

4. バイトをStringsに変換する

Encoding/decoding infinite sequences from different charsets can be done using decode and encode operators.

それらの名前が示すように、これらは単にバイト配列のエンコードまたはデコードされたシーケンスを出力するObservable、またはStrings,、したがってwe could use it if we need to handle Strings in different charsets:を作成します。

バイト配列Observableのデコード:

TestSubscriber testSubscriber = new TestSubscriber();
ByteArrayInputStream is = new ByteArrayInputStream(
  "Lorem ipsum loream, Lorem ipsum lore".getBytes());
Observable byteArrayObservable = StringObservable.from(is);
Observable stringObservable = StringObservable
  .decode(byteArrayObservable, StandardCharsets.UTF_8);

// emits UTF-8 decoded strings,"Lorem ipsum loream, Lorem ipsum lore"
stringObservable.subscribe(testSubscriber);

5. Stringsの分割

StringObservableには、Stringシーケンスを分割するための便利な演算子もいくつかあります。splitbyLine,はどちらも、パターンに従って入力データ出力アイテムをチャンク化する新しいObservableを作成します。

StringObservable.split splitting strings in rxjava

TestSubscriber testSubscriber = new TestSubscriber();
Observable sourceObservable = Observable.just("Lorem ipsum loream,Lorem ipsum ", "lore");
Observable splittedObservable = StringObservable.split(sourceObservable, ",");

// emits 2 strings "Lorem ipsum loream", "Lorem ipsum lore"
splittedObservable.subscribe(testSubscriber);

6. 文字列の結合

前のセクションの演算子を補完するのは、joinstringConcatで、StringObservableからの項目を連結して、区切り文字を指定して単一の文字列を出力します。

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

StringObservable.join joining strings

TestSubscriber testSubscriber = new TestSubscriber();
Observable sourceObservable = Observable.just("Lorem ipsum loream", "Lorem ipsum lore");
Observable joinedObservable = StringObservable.join(sourceObservable, ",");

// emits single string "Lorem ipsum loream,Lorem ipsum lore"
joinedObservable.subscribe(testSubscriber);

7. 結論

このStringObservableの簡単な紹介では、RxJavaString.を使用したStringの操作のいくつかの使用例を示しました。

このチュートリアルの例とStringObservable演算子の使用方法に関する他の例は、over on GitHubにあります。