在Pharo和Dolphin Smalltalk中的findTokens:方法区别

4

I want to split a String in Pharo 4. My input is

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

and I want to get

#('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中实现Dolphin的行为?

你是否考虑过更简单的方法,例如 'a %% b %% c %%% d %% e %% f' readStream upToAll: ' %%% ' - Leandro Caniglia
是的,但这不适用于更长的序列 'a %% b %% c %%% d %% e %% f %%% g %% h %% i' readStream upToAll: ' %%% ' - user1000565
当然,我的代码仅仅是一个提示。你需要按照 [stream atEnd] whileFalse: [result add: (stream upToAll: ' %%%% ')] 的方式收集 upToAll: 的结果。 - Leandro Caniglia
1个回答

3

尝试

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

它还与其他技术兼容。
'a %% b %% c %%% d %% e %% f %%% g %% h %% i' splitOn: ' %%% '

1
它也可以与以下内容一起使用:' %%% ' split: 'a %% b %% c %%% d %% e %% f' - Cyril Ferlicot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接