RxJava StringObservable

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に追加]で見つけることができます。