Страницы

Поиск по вопросам

понедельник, 6 мая 2019 г.

Режем строку, сохраняя разделители

Как можно строку формата: "-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)); } }
В вопросе ничего не говорилось про десятичный разделитель, функции и скобки.
Правильным подходом по решению задачи это не сразу разбивать строку на отдельные лексемы, а считывая ее последовательно обрабатывать конечным автоматом. За основу можно взять алгоритм из статьи про обратную польскую нотацию

Комментариев нет:

Отправить комментарий