Java Tokenizer скольжения - PullRequest
       7

Java Tokenizer скольжения

0 голосов
/ 13 апреля 2011

Я бы хотел токенизировать строку String в токены (добавить в таблицу String), и я могу использовать только java.io. * Это для реализации калькулятора.

Например: Первая строка: 1 + 2 + 3 Вторая строка: 1+ 2 * 3 (эта с пробелом между токенами)

в таблицу {"1", "+", "2", "+", "3"}

Я думал о разделении любой идеи?

Ответы [ 4 ]

2 голосов
/ 13 апреля 2011

Подсказка: используйте java.io.StreamTokenizer

1 голос
/ 13 апреля 2011

Помимо того, что сказал Манджи, если вы действительно хотите реализовать калькулятор, вам нужно будет проанализировать ваши токены после того, как они были токенизированы.

Например, если у вас есть выражение:

1 + 2 + 3 * (4 + 5)

вам нужно создать Абстрактное синтаксическое дерево , чтобы выражение было оценено правильно.

Одних регулярных выражений недостаточно, чтобы полностью решить эту проблему.

0 голосов
/ 13 апреля 2011

Для сканирования ввода я рекомендую java.util.Scanner.

0 голосов
/ 13 апреля 2011

Это можно сделать довольно легко.

 String text  = "1+2+3";

        StringBuilder seperatedString = new StringBuilder();

        char[] chars = text.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            char aChar = chars[i];
            if(!Character.isSpaceChar(aChar)) {
              seperatedString.append(aChar).append(",");
            }
        }

        System.out.println("The tokenized string"+ seperatedString);

Или вы можете использовать Regex, как упомянул @glowcoder.Отвечая на вопрос о том, как вы знаете регулярные выражения, вы можете сказать, что использовали RegexBuddy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...