View source code
Display the source code in std/uni.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function std.uni.byGrapheme
Iterate a string by Grapheme
.
auto byGrapheme(Range)
(
Range range
)
if (isInputRange!Range && is(immutable(ElementType!Range) == immutable(dchar)));
Useful for doing string manipulation that needs to be aware of graphemes.
See Also
Example
import std .algorithm .comparison : equal;
import std .range .primitives : walkLength;
import std .range : take, drop;
auto text = "noe\u0308l"; // noël using e + combining diaeresis
assert(text .walkLength == 5); // 5 code points
auto gText = text .byGrapheme;
assert(gText .walkLength == 4); // 4 graphemes
assert(gText .take(3) .equal("noe\u0308" .byGrapheme));
assert(gText .drop(3) .equal("l" .byGrapheme));
Authors
Dmitry Olshansky
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.