Я создаю языковой интерпретатор, и мне нужно иметь две функции: одну для ввода целого числа, а другую для ввода символа (из System.in). Например, введите целое число - символ - целое число - символ - символ - символ из
123 C
456
DEF
должен давать 123, C, 456, D, E и F.
С моей текущей реализацией я могу получить либо 123, C, 456, D (исчерпав текущую строку ввода ) или получите 123, C, 456, E, F (пропуск любого символа в первой строке).
Мой код:
class Variable extends Var {
private static Scanner scanner = new Scanner(System.in);
private static String buffer = ""; // Buffer to hold unprocessed characters
private static int bufferIndex = 0; // Index to track the next character in the buffer
private String name;
public Variable(String name) {
this.name = name;
}
public String getName(HashMap values) {
return name;
}
public int evaluate(HashMap values) {
if (name.equals("read")) {
return scanner.nextInt();
}
if (name.equals("get")) {
// Refill buffer if empty or fully processed
while (bufferIndex >= buffer.length()) {
buffer = scanner.nextLine();
bufferIndex = 0; // Reset the index for the new buffer
}
// Return the ASCII value of the next character in the buffer
return (int) buffer.charAt(bufferIndex++);
}
return values.getOrDefault(name, 0);
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ading-ints
Извлечение символов из буфера при чтении целых чисел ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1734165103
Anonymous
Я создаю языковой интерпретатор, и мне нужно иметь две функции: одну для ввода целого числа, а другую для ввода символа (из System.in). Например, введите целое число - символ - целое число - символ - символ - символ из
123 C
456
DEF
должен давать 123, C, 456, D, E и F.
С моей текущей реализацией я могу получить либо 123, C, 456, D (исчерпав текущую строку ввода ) или получите 123, C, 456, E, F (пропуск любого символа в первой строке).
Мой код:
class Variable extends Var {
private static Scanner scanner = new Scanner(System.in);
private static String buffer = ""; // Buffer to hold unprocessed characters
private static int bufferIndex = 0; // Index to track the next character in the buffer
private String name;
public Variable(String name) {
this.name = name;
}
public String getName(HashMap values) {
return name;
}
public int evaluate(HashMap values) {
if (name.equals("read")) {
return scanner.nextInt();
}
if (name.equals("get")) {
// Refill buffer if empty or fully processed
while (bufferIndex >= buffer.length()) {
buffer = scanner.nextLine();
bufferIndex = 0; // Reset the index for the new buffer
}
// Return the ASCII value of the next character in the buffer
return (int) buffer.charAt(bufferIndex++);
}
return values.getOrDefault(name, 0);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79279976/fetching-characters-from-a-buffer-while-reading-ints[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия