Извлечение символов из буфера при чтении целых чиселJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Извлечение символов из буфера при чтении целых чисел

Сообщение 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);
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ading-ints
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»