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 и отображаются на консоли. |


