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