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