findTokens: в Pharo против Dolphin Smalltalk

Я хочу разбить строку в Pharo 4. Мой ввод:

'a %% b %% c %%% d %% e %% f' 

и я хочу получить

#('a %% b %% c' 'd %% e %% f')

таким образом, разделитель '%%%'

В Dolphin 7 это работает хорошо:

'a %% b %% c %%% d %% e %% f' subStrings: ' %%% '
#('a %% b %% c' 'd %% e %% f')

Но в Pharo 4, похоже, не работает:

'a %% b %% c %%% d %% e %% f' subStrings: ' %%% '
"#('a' 'b' 'c' 'd' 'e' 'f')"

Есть ли способ получить поведение дельфина в Pharo?


person user1000565    schedule 04.04.2016    source источник
comment
Рассматривали ли вы более простой подход, такой как 'a %% b %% c %%% d %% e %% f' readStream upToAll: ' %%% '?   -  person Leandro Caniglia    schedule 05.04.2016
comment
Да, но это не сработает с более длинной последовательностью 'a %% b %% c %%% d %% e %% f %%% g %% h %% i' readStream upToAll: ' %%% '   -  person user1000565    schedule 05.04.2016
comment
Конечно, мой код был просто подсказкой. Вам нужно будет собрать результаты upToAll: [stream atEnd] whileFalse: [result add: (stream upToAll: ' %%%% ')] способом.   -  person Leandro Caniglia    schedule 05.04.2016


Ответы (1)


Пытаться

'a %% b %% c %%% d %% e %% f' splitOn: ' %%% '

Он также работает с

'a %% b %% c %%% d %% e %% f %%% g %% h %% i' splitOn: ' %%% '
person John Pfersich    schedule 05.04.2016
comment
Он также может работать с: ' %%% ' split: 'a %% b %% c %%% d %% e %% f' - person Cyril Ferlicot; 05.04.2016