|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.wobben@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.sargent@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