Записки программиста Программирование и не только

9Окт/120

[Java] Консольный ввод/вывод

Любимое занятие - написание консольных диалоговых приложений :)

Во время работы метода System.in.read возможно возникновение исключений. Поэтому заключаем фрагмент кода, выполняющий эту функцию, в блок try-catch.

import java.util.StringTokenizer;    //добавляем класс для обработки строк

public class ioTest {
    public static void main(String args[]) {
        byte bKbd[] = new byte[256];		// буфер
        String szStr = "";					// итоговая строка
        StringTokenizer st;					// преобразователь

        System.out.print("Print here: ");
        try
        {
            // Метод read считывает символы с клавиатуры и записывает
			// их в массив байт с именем bKbd. Этот метод возвращает 
			// управление, когда пользователь закончил ввод и нажал 
			// клавишу <Enter>. При этом в переменную iCnt записывается 
			// количество прочитанных символов.
            int iCnt = System.in.read(bKbd);

            // Строка String содержит 16-разрядные символы Unicode.
            // Чтобы преобразовать массив байт в строку Unicode, мы
			// задаем значение старшего байта во втором параметре 
			// конструктора, равное нулю.
            szStr = new String(bKbd, 0, iCnt);

            // Удаление символов возврата каретки и перевода строки
			// выполняется при помощи класса StringTokenizer, предназначенного 
			// для разбора текстовых строк. Создавая объект этого класса,
			// мы передаем конструктору через второй параметр список 
			// символов-разделителей
            st = new StringTokenizer(szStr, "\r\n");

            // Метод nextElement возвращает первый элемент строки до разделителя,
			// то есть в нашем случае всю строку до символов возврата каретки и 
			// перевода строки.
            szStr = new String((String)st.nextElement());
        }
        catch(Exception ex)
        {
            System.out.println(ex.toString());
        }

        //чисто для красоты - разделяем строку на слова
        String v[] = szStr.split(" ");
        for(int j = 0; j < v.length; j++)
        {
            System.out.println(j + "-е слово: " + v[j]);
        }
    }
}

Как пользоваться:
Запускаем, внизу в консоли тыкаем в белое поле и набираем строку. Ввод заканчиваем нажатием клавиши

Как-то вот так:

Print here: Это странная консольная программа!
0-е слово: Это
1-е слово: странная
2-е слово: консольная
3-е слово: программа!

Process finished with exit code 0
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.