[Newbies] Splitting strings

ncellier at ifrance.com ncellier at ifrance.com
Wed Jul 26 07:02:47 UTC 2006


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.

Nicolas

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 !
http://web.ifrance.com


More information about the Squeak-dev mailing list