RxJava StringObservable

RxJava StringObservable

1. Einführung inStringObservable

Das Arbeiten mitString Sequenzen inRxJava kann schwierig sein. Zum Glück stellt unsRxJavaString alle notwendigen Dienstprogramme zur Verfügung.

In diesem Artikel behandeln wirStringObservable, die einige hilfreicheString-Operatoren enthalten. Bevor Sie beginnen, sollten Sie sich zunächst dieIntroductiontoRxJava ansehen.

2. Maven Setup

Lassen Sie uns zunächstRxJavaString in unsere Abhängigkeiten aufnehmen:


  io.reactivex
  rxjava-string
  1.1.1

Die neueste Version von rxjava-string ist überMaven Central verfügbar.

3. StringObservable

StringObservable ist ein praktischer Operator zur Darstellung einer potenziell unendlichen Folge von codiertenStrings .

Der Operatorfrom liest einen Eingabestream und erzeugt einenObservable, der zeichengebundene Sequenzen von Bytearrays ausgibt:

Reading an infinite stream

inReactivex.io, verwendet unterCC-BY

Wir können einObservable direkt aus einemInputStream mit einemfrom-Operator erstellen:

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. Konvertieren von Bytes inStrings

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

Wie der Name vermuten lässt, erzeugen diese einfach einObservable, das eine codierte oder decodierte Folge von Bytearrays oderStrings,, daherwe could use it if we need to handle Strings in different charsets:, ausgibt

Decodieren eines Byte-ArraysObservable:

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 teilen

StringObservable hat auch einige praktische Operatoren zum Aufteilen vonString-Sequenzen:split undbyLine, erstellen beide ein neuesObservable, das Eingabedaten, die Elemente ausgeben, nach einem Muster aufteilt:

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. Strings verbinden

Ergänzend zu den Operatoren des vorherigen Abschnitts sindjoin undstringConcat, die Elemente ausStringObservable verketten, die eine einzelne Zeichenfolge mit einem Trennzeichen ausgeben.

Beachten Sie auch, dass diese alle Elemente verbrauchen, bevor Sie eine Ausgabe ausgeben.

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. Fazit

Diese kurze Einführung inStringObservable zeigte einige Anwendungsfälle der Manipulation vonString mitRxJavaString.

Beispiele in diesem Tutorial und andere Beispiele zur Verwendung vonStringObservable-Operatoren finden Sie unterover on GitHub.