Как можно строку формата: "-99/9" разбить на массив подстрок {"-","99","/","9"}?
Ответ
Зачем усложнять? Есть числа и что-то между ними. Выделяем числа с двух сторон пробелами, нормализуем строку, чтобы после разбиения не появилось пустых элементов и готово.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String str = "2+2*24-78";
str = str.replaceAll("(\\d+)"," $1 ");
str = str.trim();
String[] stack = str.split(" ");
System.out.println(Arrays.toString(stack));
}
}
В вопросе ничего не говорилось про десятичный разделитель, функции и скобки.
Правильным подходом по решению задачи это не сразу разбивать строку на отдельные лексемы, а считывая ее последовательно обрабатывать конечным автоматом. За основу можно взять алгоритм из статьи про обратную польскую нотацию
Комментариев нет:
Отправить комментарий