Суббота, 2025-02-08, 00:01:11
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Строковые преобразования
CHerryДата: Суббота, 2011-09-17, 00:31:51 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Code

import java.io.*;
public class stringCalc {

  public static void main(String[] args) throws IOException {
   System.out.print("Введите текст: ");   //ввод с клавиатуры через BufferedReader
   BufferedReader BufferedBlock = new BufferedReader(new InputStreamReader (System.in));
   String TextBlock= BufferedBlock.readLine();
   System.out.println("Спасибо ! Ваш текст:"+TextBlock);

   for (char utfChar='\u0020';utfChar<'\uFEFF';utfChar++){ // перебор кодовой таблицы символов от пробела
     int rate=countCharInString(TextBlock,utfChar); // подсчет количества текущего символа в текстовом блоке
     if (rate>0){
      System.out.print(utfChar+"  "+rate+"|");   //вывод псевдо графика
      for (int i=1;i<=rate;i++) {
       System.out.print("*");
      }
      System.out.println();
     }
       
    }
  }
  // считаем количество искомых символов в строке
  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;
  }
}
 
CHerryДата: Понедельник, 2011-09-19, 15:26:19 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
По просьбе
MINIsha
Quote
Владимир! Не могли бы Вы написать подробный коммент выполнения кода по строковым преобразованиям?


Открываем цикл перебора символьного цикла 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;
 
MINIshaДата: Вторник, 2011-09-20, 12:26:43 | Сообщение # 3
Генерал-майор
Группа: Администраторы
Сообщений: 21
Репутация: 1293
Статус: Offline
Спасибо!!! Теперь всё ясно!!! biggrin

Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
 
  • Страница 1 из 1
  • 1
Поиск: