Java-токенайзер, C ++-токенайзер и стрток - PullRequest
0 голосов
/ 05 октября 2010

Хочу узнать, какова алгоритмическая сложность следования 1. Java String tokenizer 2. C ++ STL на основе токенизатора 3. стрток.

Есть ли более быстрый алгоритм, чем элементарный strtok, для токенизации строки на основе пользовательского разделителя.

1 Ответ

2 голосов
/ 05 октября 2010

Что касается Java, существует 3 основных метода токенизации (String.split (), StringTokenizer и StreamTokenizer). если вы ссылаетесь на класс java.util.StringTokenizer (который разбивает токены, разбивая входную строку S при каждом появлении символа из заданной строки D), то сложность O (| S | * | D |). Т.е., если у вас есть только один символ-разделитель, он будет линейным.

Обратите внимание, что другие токенизаторы более мощные по своим возможностям. Например, String.split () может разбить любой шаблон, соответствующий заданному регулярному выражению.

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