|s1 s2|
s1 := 'abcdefghijk'.
s2 := String streamContents: [:s |
  s1 keysAndValuesDo: [:index :each |
    (index \\ 3 = 1 and: [1 < index])
      ifTrue: [s space].
    s nextPut: each]].

is perhaps a little simpler.  I generally prefer to have Smalltalk
do the counting for me.

On Tue, 28 Apr 2020 at 07:25, Todd Blanchard via Pharo-users
<pharo-users@lists.pharo.org> wrote:
>
> This works
>
> | s1 s2 |
> s1 := 'abcdefghijk'.
> s2 := String streamContents: [:s || in len |
>    in := ReadStream on: s1.
>    len := 0.
>    [in atEnd] whileFalse: [
>       s nextPut: in next.
>       len := len + 1.
>       (in atEnd not and: [ (len \\ 3) = 0]) ifTrue: [ s space ] ] ]
>
> On Apr 27, 2020, at 10:07 AM, Roelof Wobben via Pharo-users 
> <pharo-users@lists.pharo.org> wrote:
>
>
> From: Roelof Wobben <r.wob...@home.nl>
> Subject: Re: [Pharo-users] can I divide a string into part of exactly n length
> Date: April 27, 2020 at 10:07:41 AM PDT
> To: Richard Sargent <richard.sarg...@gemtalksystems.com>, Any question about 
> pharo is welcome <pharo-users@lists.pharo.org>
>
>
> Op 27-4-2020 om 19:05 schreef Richard Sargent:
>
> On Mon, Apr 27, 2020 at 9:27 AM Roelof Wobben via Pharo-users 
> <pharo-users@lists.pharo.org> wrote:
>>
>> Hello,
>>
>> I wonder if it is possible in Pharo to divide a string in lets say part
>> of 3.
>> so this :  'abcdefgh'
>>
>> would be  'abc def gh`
>
>
> Do you really want a single string with spaces inserted or do you want a 
> collection of substrings, each three characters (or less, for the last one)?
>
>
> I need a single string with spaces inserted.
> So maybe I have formulate my question wrong. Very difficult if English is not 
> your mother language and you were bad at school in languages a very very long 
> ago.
>
> Roelof
>
>
>
>

Reply via email to