2016-04-04 12 views
4

Ich möchte einen String in Pharo 4. Mein EingangfindTokens: in Pharo gegen Dolphin Smalltalk

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

ist gespalten, und ich will

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

damit der Separator 'bekommen %%% '

In Dolphin 7 es funktioniert schön:

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

Aber in Pharo 4 scheint gebrochen zu werden:

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

Es gibt einen Weg, um das Dolphin Verhalten in Pharo zu bekommen?

+0

Haben Sie einen einfacheren Ansatz betrachtet wie ' 'a %% b %% c %%% d %% e %% f' readStream upToAll: '%%%' '? –

+0

Ja, aber das würde nicht mit einer längeren Sequenz funktionieren '' a %% b %% c %%% d%% e%%%%%%% g %% h %% i 'readStream upToAll:' %%% '' – user1000565

+0

Sicher, mein Code war nur ein Hinweis. Sie müssten die Ergebnisse von 'upToAll: 'in einem' [stream atEnd] whileFalse: [result add: (stream upToAll:' %%%% ')] 'Weg sammeln. –

Antwort

3

Versuchen

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

Es funktioniert auch mit

'a %% b %% c %%% d %% e %% f %%% g %% h %% i' splitOn: ' %%% ' 
+1

Es funktioniert auch mit: ''%%%' Split: 'a %% b %% c %%% d %% e %% f'' –