RxJava StringObservable
1. Introduction àStringObservable
Travailler avec des séquencesString enRxJava peut être difficile; heureusementRxJavaString nous fournit tous les utilitaires nécessaires.
2. Maven Setup
Pour commencer, incluonsRxJavaString parmi nos dépendances:
io.reactivex
rxjava-string
1.1.1
La dernière version de rxjava-string est disponible surMaven Central.
3. StringObservable
StringObservable est un opérateur pratique pour représenter une séquence potentiellement infinie deStrings codés .
L'opérateurfrom lit un flux d'entrée créant unObservable qui émet des séquences délimitées par des caractères de tableaux d'octets:
parReactivex.io, utilisé sousCC-BY
Nous pouvons créer unObservable directement à partir d'unInputStream en utilisant un opérateurfrom:
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. Conversion d'octets enStrings
Encoding/decoding infinite sequences from different charsets can be done using decode and encode operators.
Comme leur nom l'indique, ceux-ci créeront simplement unObservable qui émet une séquence codée ou décodée de tableaux d'octets ouStrings, donc,we could use it if we need to handle Strings in different charsets:
Décodage d'un tableau d'octetsObservable:
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. FractionnementStrings
StringObservable a également quelques opérateurs pratiques pour diviser les séquencesString:split etbyLine, créent tous deux un nouveauObservable qui segmente les données d'entrée en sortie les éléments suivant un modèle:
parReactivex.io
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. Joindre des chaînes
Les opérateurs de la section précédente sont complémentaires des opérateursjoin etstringConcat qui concaténent les éléments d'unStringObservable émettant une seule chaîne à partir d'un séparateur.
Notez également que ceux-ci consomment tous les éléments avant d’émettre une sortie.
parReactivex.io
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. Conclusion
Cette brève introduction àStringObservable a démontré quelques cas d'utilisation de la manipulation deString à l'aide deRxJavaString.
Des exemples dans ce didacticiel et d'autres exemples sur la façon d'utiliser les opérateursStringObservable peuvent être trouvésover on GitHub.