Добрый день. Делаю задание с генератором словаря. В общем суть в том, что есть строка вначале кода 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);
}
}
задание творческое.я решил по следующему принципу сделать перевод:
фраза аборегена 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);