logo       

Re: Splitting strings: msg#00186

lang.smalltalk.squeak.beginners

Subject: Re: Splitting strings

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.

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@xxxxxxxxxxxxxxxxxxxxxxxxxx
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>


________________________________________________________________________
iFRANCE, exprimez-vous !
http://web.ifrance.com
_______________________________________________
Beginners mailing list
Beginners@xxxxxxxxxxxxxxxxxxxxxxxxxx
http://lists.squeakfoundation.org/mailman/listinfo/beginners
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise