[Newbies] Splitting strings

ncellier at ifrance.com ncellier at ifrance.com
Wed Jul 26 07:05:36 UTC 2006

Oups, i sent my answer to squeak-dev... forward to beginners

I see at least two alternatives:
- Stream
- VBRegex

If you have a single separator string, then Stream already has the upToAll: method (leave stream positioned before occurence...)

| testString sep subStrings inputStream |
testString := 'split that string in this language'.
sep := 'th'.
subStrings := Array new writeStream.
inputStream := testString readStream.
[inputStream atEnd]
	whileFalse: [
		subStrings nextPut: (inputStream upToAll: sep).
		inputStream throughAll: sep].
^subStrings contents

VBRegex is more powerfull of course (it can match several different separators at once).
I let you inquire about it.


Damien Pollet:
> Hi,
> is there anything like ruby's String#split in Smalltalk? (split the
> string at string occurences or regexp matches)
> I found SequenceableCollection#piecesCutWhere: or String#findTokens
> but I need to split at occurences of a substring. I must also admit my
> problem is with VW... I did try in the method finder in Squeak, but
> without much success.
> -- 
>  Damien Pollet
>  type less, do more
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners

iFRANCE, exprimez-vous !

More information about the Beginners mailing list