code: public static Observable<String> byCharacter(Observable<String> source) {
          return source.lift(new Operator<String, String>() {
              @Override
              public Subscriber<? super String> call(final Subscriber<? super String> subscriber) {
                  return new Subscriber<String>(subscriber) {
                      @Override
                      public void onCompleted() {
                          subscriber.onCompleted();
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          subscriber.onError(e);
                      }
  
                      @Override
                      public void onNext(String str) {
                          for (char c : str.toCharArray()) {
                              subscriber.onNext(Character.toString(c));
                          }
                      }
                  };
              }
          });
      }
docs: Converts a String into an Observable that emits the chars in the String.
  <p>
  <img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/from.png" alt="">
  
  @param str
  the source String
  @return an Observable that emits each char in the source String
  @see <a href="https://github.com/ReactiveX/RxJava/wiki/Creating-Observables#from">RxJava wiki: from</a>