По просьбе
MINIshaQuote
Владимир! Не могли бы Вы написать подробный коммент выполнения кода по строковым преобразованиям?
Открываем цикл перебора символьного цикла char utfChar от символа (пробел), в кодировке UTF ему соответствует значение \u0020, до значения последнего знака препинания \uFEFF.
Code
for (char utfChar='\u0020';utfChar<'\uFEFF';utfChar++){
Инициализация и присвоение переменной int значения рассчитываемого в методе countCharInString() описанного ниже, который считает количество искомого символа utfChar в нашем текстовом блоке
Code
int rate=countCharInString(TextBlock,utfChar);
Здесь мы печатаем только если rate>0 есть хотя бы один искомый символ utfChar найден
Code
if (rate>0){
System.out.print(utfChar+" "+rate+"|"); //вывод псевдо графика
for (int i=1;i<=rate;i++) {
System.out.print("*");
}
System.out.println();
}
Метод который возвращает число Count рассчитывая из передаваемых в параметре строке Str и количестве передаваемого в параметре символа Chr
Code
static int countCharInString (String Str, char Chr){
int Count=0;
for (int Index = Str.indexOf(Chr, 0); Index>=0; ){
Index = Str.indexOf(Chr, Index+1);
Count++;
}
return Count;