www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - one liner to split a string into every n chars?

reply mw <mingwu gmail.com> writes:
Hi,

What's the D's idiom to split a string into an array of every n 
chars? (prefer one liner)

Thanks.
Apr 12 2022
next sibling parent rikki cattermole <rikki cattermole.co.nz> writes:
One way you can do it:

import std.range : chunks;
import std.algorithm : map;
import std.array : array;
import std.conv : text;

string[] split = "Hello D".chunks(2).map!(v => v.text).array;
writeln(split);

foreach(val; "Hello D".chunks(2)) {
     writeln(val.text);
}
Apr 12 2022
prev sibling parent Steven Schveighoffer <schveiguy gmail.com> writes:
On 4/13/22 2:26 AM, mw wrote:
 Hi,
 
 What's the D's idiom to split a string into an array of every n chars? 
 (prefer one liner)
str.byChar.chunks(2).array; Your request of "array of every n chars" is somewhat ambiguous. This is an array of chunks (not an array of arrays). -Steve
Apr 13 2022