Объясните, пожалуйста, почему, если я буду нажимать следующие клавиши по очереди: {a
,enter
,b
,enter
,q
, enter
}, то я увижу ужасно странный вывод, который отделяет предыдущий ввод от нынешнего ~пятью сносами строки?
Код:
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
char c;
do {
c = (char)in.read();
System.out.println(c);
} while (c!='q');
Ожидание:
a
a
b
b
q
Реальность:
a
a
b
b
q
q
Даже если думать, что при нажатии на enter
отправляется ещё и непосредственно \n
в поток, то вывод должен быть такой после первой введённой буквы:
a
a
b...
Т.е. от куда ещё выводится один снос строки?...
Смешно ещё, что такой код будет давать ожидаемый результат:
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
String s;
do {
s = in.readLine();
System.out.println(s);
} while (!s.equals("q"));
С Вашего первого примера у меня выводит, если "слушать" коды то:
a (сам ввод в консоль)
97 (код буквы в ASCII)
10 (LF, код переноса строки) // далее ниже следующие символы
b
98
10
q
113
Предполагаю, что т.к char
это один символ, то и перенос строки \n
(исходит, вероятно, от Enter) выводится при печати как отдельный символ. Если использовать метод без переноса строки, а именно System.out.print(), то:
a
a
b
b
q
q
Если в кодах:
a
9710b
9810q
113
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужна помощь! Как сделать переход на чистую страницу после того, как пользователь полностью зарегистрировался в приложении? То есть если...
мне нужно только для двух добавления двух сервисов, который не будет меняться в дальнейшем, читаю и вижу два варианта без spring boot и со спрингомкакой...
Всем доброго дняПару дней назад появилась странная ошибка в Intelij IDEA:
Опыт веб программирования: неделяДа, я знаю, что это сервера приложений, но насколько я понял (почти уверен, что не прав) это только эмуляторы...