Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
:
public class java.util.StringTokenizer
  extends java.lang.Object
  implements java.util.Enumeration
{
  // ---------------------------------------------------
  // Конструкторы класса
  // ---------------------------------------------------
  public StringTokenizer(String str);
  public StringTokenizer(String str, String delim);
  public StringTokenizer(String str, String delim, 
    boolean returnTokens);

  // ---------------------------------------------------
  // Методы
  // ---------------------------------------------------
  public String nextToken();
  public String nextToken(String delim);
  public int countTokens();
  public boolean hasMoreElements();
  public boolean hasMoreTokens();
  public Object nextElement();
}
   Класс StringTokenizer не имеет никакого отношения к потокам, так как 
предназначен для выделения отдельных элементов из строк типа String. 
   Конструкторы класса получают в качетсве первого параметра str ссылку на 
разбираемую строку. Второй параметр delim, если он есть, задает разделители, с 
испльзованием которых в строке будут выделяться элементы. Параметр returnTokens 
определяет, надо ли вовзвращать обнаруженные разделители как элементы 
разбираемой строки.
   Рассмотрим кратко методы класса StringTokenizer.
   Для разбора строки приложение должно организовать цикл, вызывая в нем метод 
nextToken. Условием завершения цикла может быть либо возникновение исключения 
NoSuchElementException, либо возврат значения false методами hasMoreElements 
или hasMoreTokens.
   Метод countTokens позволяет определить, сколько раз был вызван метод 
nextToken перед возникновением исключения NoSuchElementException.
   Приложение StringToken
   Приложение StringToken получает одну строку из стандартного потока ввода и 
выполняет ее разбор с помощью класса StringTokenizer. Отдельные элементы строки 
выводятся на консоль в столбик (рис. 2.7).

Рис. 2.7. Разбор строки в приложении StringToken
   В качестве разделителя заданы символы ",.; ", то есть запятая, точка, точка 
с запятой и пробел.
   Исходный текст приложения
   Исходный текст приложения StringToken вы найдете в листинге 2.6.
Листинг 2.6. Файл StringToken\StringToken.java
// =========================================================
// Разбор текстовой строки при помощи класса 
// StringTokenizer 
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// 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  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);
}
   Для проверки условия за
 
<<-[Весь Текст]
Страница: из 275
 <<-