Вопрос как сделать стрим

Добрый день. Делаю задание с генератором словаря. В общем суть в том, что есть строка вначале кода stringAborigens — это типа абориген сказал что-то и я хочу сделать привязку каждого его слова в алфавит кирилицы… Не знаю, как только сделать так, чтобы в стриме всё работало… Подскажите, есть идеи?

import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String stringAborigens = "sdfaljhds ksjdfhlksjd jsdhflasdj sdvjbalsc vb,nxzcmvb sdjfuw saytqwi uqwrywieu zxnbv, vajscb vbz,n nbxv ,z asbva, uiwerteuwfg avlsv aljgl VBXZL bv,ZD JDSGlw";



        // детерминированность
        Function<String, String[]> splitWords = string -> string.split("\\s");

        System.out.println("\nВаш новый словарь для общения с аборигенами:");

        // Монада
        SortWords(stringAborigens, splitWords);
    }

    private static void SortWords(String stringAborigens, Function<String, String[]> splitWords) {
        Arrays.stream((splitWords.apply(stringAborigens)))
                .sorted()
           .map(w->w+1)
      .range('a', 'z' + 1).mapToObj(i->i+" с аборигенского является буквой "+(char) i+" на кирилице")
                .forEach(System.out::println);

    }
}

Чот не похоже (ну разве что используемый внутри этой функции stream имеет отношение к монадам).

А сделать-то что именно надо, какое задание, какие правила перевода этих слов?

задание творческое.я решил по следующему принципу сделать перевод:
фраза аборегена String stringAborigens = “sdfaljhds и т д” проходила через стрим и в output’e выходило
" sdfaljhds → является буквой А на аборигенском
ksjdfhlksjd → является буквой B на аборигенском
и т д"
Просто я не могу понять, как сделать счетчик букв в стриме и добавлять буквы из счетчика. У меня же есть: “является буквой А\B\C\D\E\F и тд”… не знаю, как сделать счетчик букв в моём стриме.
Наверное, как-то так можно сделать:

        String[] s = "aasf gsdgd jgjj hjlhjk qrwr ttuttyur uouop p[io]i".split(" ");
        IntStream.range(0, s.length)
                .mapToObj(x -> String.format("%s на аборигенском, это %c", s[x], 'A' + x))
                .forEach(System.out::println);

В итоге вот так сделал:

import org.w3c.dom.ls.LSOutput;

import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String stringAborigens = "sdfaljhds ksjdfhlksjd jsdhflasdj sdvjbalsc " +
                "vb,nxzcmvb sdjfuw saytqwi uqwrywieu zxnbv, vajscb" +
                " vbz,n nbxv ,z asbva, uiwerteuwfg avlsv aljgl VBXZL" +
                " bv,ZD JDSGlw";
        // детерминированность
        Function<String, String[]> splitWords = string -> string.split("\\s");

        System.out.println("\nВаш новый словарь для общения с аборигенами:");

        // Монада
        SortWords(stringAborigens, splitWords);
    }

    private static void SortWords(String stringAborigens, Function<String, String[]> splitWords) {
//        IntStream.range(0,stringAborigens.length())
//                .mapToObj(x -> splitWords.apply(stringAborigens).toString())
//                .forEach(System.out::println);
        IntStream.range(0,stringAborigens.length())
//        Arrays.stream((splitWords.apply(stringAborigens)))
                .sorted()
                .mapToObj(x -> String.format("%s на аборигенском, это %c", (splitWords.apply(stringAborigens))[x], 'A' + x))
                .forEach(System.out::println);

    }
}