Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Microsoft Visual J++. Создание приложений и аплетов на языке Java. Часть 2

© Александр Фролов, Григорий Фролов
Том 32, М.: Диалог-МИФИ, 1997, 288 стр.

[Назад] [Содеожание] [Дальше]

Приложение StringToken

Приложение StringToken получает одну строку из стандартного потока ввода и выполняет ее разбор с помощью класса StringTokenizer. Отдельные элементы строки выводятся на консоль в столбик (рис. 2.7).

Рис. 2.7. Разбор строки в приложении StringToken

В качестве разделителя заданы символы ",.; ", то есть запятая, точка, точка с запятой и пробел.

Исходный текст приложения

Исходный текст приложения StringToken вы найдете в листинге 2.6.

Листинг 2.6. Файл StringToken\StringToken.java


// =========================================================
// Разбор текстовой строки при помощи класса 
// StringTokenizer 
//
// (C) Фролов А.В, 1997
//
// E-mail: frolov@glas.apc.org
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.io.*;
import java.util.*;

// =========================================================
// Класс StringToken
// Главный класс приложения
// =========================================================
public class StringToken
{
  // -------------------------------------------------------
  // main
  // Метод, получающий управление при запуске приложения
  // -------------------------------------------------------
  public static void main(String args[])
  {
    // Массив для ввода строки с клавиатуры
    byte bKbdInput[] = new byte[256];

    // Введенная строка, которая будет записана в поток
    String sOut;
    String str;

    try
    {
      // Выводим строку приглашения
      System.out.println("Enter string to parse...");
      
      // Читаем с клавиатуры строку для записи в файл
      System.in.read(bKbdInput);

      // Преобразуем введенные символы в строку типа String
      sOut = new String(bKbdInput, 0);
      
      // Создаем разборщик текстовой строки
      StringTokenizer st;

      st = new StringTokenizer(sOut, ",.; ");

      // Запускаем цикл разборки строки
      while(st.hasMoreElements())
      {
        // Получаем очередной жлемент
        str = new String((String)st.nextElement());

        // Записываем его в стандартный поток вывода
        System.out.println(str);
      }
      
      System.out.println("Press <Enter> to terminate...");
      System.in.read(bKbdInput);
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
  }
}

Описание исходного текста

После ввода текстовой строки и ее записи в поле sOut наше приложение создает на базе этой строки объект st класса StringTokenizer:


StringTokenizer st;
st = new StringTokenizer(sOut, ",.; ");

Далее он в цикле получает все элементы строки, вызывая для этого метод nextElement:


while(st.hasMoreElements())
{
  str = new String((String)st.nextElement());
  System.out.println(str);
}

Для проверки условия завершения цикла вызывается метод hasMoreElements. Когда он возвращает значение false, цикл завершается.

Выделенные в цикле элементы строки записываются в переменную str и отображаются на консоли.

[Назад] [Содеожание] [Дальше]