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