в задаче мне надо вернуть массив строк это делает res[i] = reter nextToken?, можно по пальцам все действия разложить пожалуйста
Anonymous #2556555
11 уровень
обьясните от начала до конца плиз
Обсуждается
в задаче мне надо вернуть массив строк это делает res[i] = reter nextToken?, можно по пальцам все действия разложить пожалуйста
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
28 марта 2023, 13:37
Класс StringTokenizer разбивает строку на токены по определённому разделителю. Ожидаемо, что метод nextToken вызванный у этого объекта возвращает тебе следующий кусок строки.
В целом не совсем понимаю зачем сейчас этот класс нужен, ведь тот же split делает примерно тоже самое.
Если говорить в рамках твоей задачи можно было бы реализовать метод одной строкой.
+2
Anonymous #2556555Expert
28 марта 2023, 14:41
а как работает делиметр?
0
hidden #598481
28 марта 2023, 14:51полезный
Делиметр - это разделитель, относительно которого строка разбивается на токены.
+1
Anonymous #2556555Expert
28 марта 2023, 15:01
Тобишь у меня разделитель "//." это вот это, да? А если бы было "Ам" допустим? Как юы он разделял?
и как понять на сколько строк он будет делить? там указанно что после каждой точкой? "//." я правильно понимаю?
0
Anonymous #2556555Expert
28 марта 2023, 15:09
я проверил там если просто точку оставить без слешей , будет тоже самое , зачем там эти два слеша
+1
hidden #598481
28 марта 2023, 15:35
Они там и не нужны.
В этом разница между String.split и токенайзером.
Насчёт слэшей. Во-первых не "//.", а "\\.". Символом "\" в регулярных выражениях экранируются символы, когда надо, чтобы спецсимволы использовались в буквальном смысле. Сам символ \ тоже надо экранировать, поэтому их пишут два. Только вот в токенайзере не используются регулярные выражения :)
Для токенайзера каждый символ переданный в качестве делиметра строки является разделителем. То есть твой токенайзер будет разделять не только по точкам, но и по обратным слэшам:
Разделяет и по слэшу и по точке:
Если бы цель была разделить методом split по точке, то вот там было бы нужно использовать последовательность "\\.", потому что без этого символ точки в регулярных выражениях означает "любой символ".
+2
Anonymous #2556555Expert
28 марта 2023, 19:03
в моей задаче слеш нужен был только в случае использования метода split?
0
Anonymous #2556555Expert
28 марта 2023, 19:04
чтобы данный метод понял что это символ(точка)?
0
hidden #598481
28 марта 2023, 20:44
Если цель была использовать в качестве разделителя только точку, то да
0