RxJava StringObservable

RxJava StringObservable

1. Introduction àStringObservable

Travailler avec des séquencesString enRxJava peut être difficile; heureusementRxJavaString nous fournit tous les utilitaires nécessaires.

Dans cet article, nous couvrironsStringObservable qui contient quelques opérateursString utiles. Par conséquent, avant de commencer, il est conseillé d’examiner d’abord lesIntroductiontoRxJava.

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:

Reading an infinite stream

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:

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

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