Ale*_* A. 4 arrays string utf-8 julia
使用graphemesover split从UTF-8字符串创建数组是否有优势?
例如,请考虑以下事项:
# Define a UTF-8 string with a bunch of multibyte characters
s = "{(-n??÷???),??1???.=??n?1-???}"
# Create an array using split
split(s, "")
# Create an array using graphemes (v0.4+)
collect(graphemes(s))
Run Code Online (Sandbox Code Playgroud)
两种方法都产生预期的输出.事实上,
split(s, "") == collect(graphemes(s))
Run Code Online (Sandbox Code Playgroud)
回报true.
这两种方法似乎始终如一地产生相同的结果.一种方法通常优先于另一种方式,无论是性能,风格还是其他方式?
(注意,graphemes返回迭代器而不是数组,因此collect.)
取决于你在寻找什么. graphemes()将返回用户认为是单个字符的内容,即使它们可能包含多个代码点; 例如,与重音符号组合的字母是单个字素.事实并非如此split().
考虑一个+◌.在此示例中,split()将两个代码点作为单独的字符graphemes()返回,而将返回单个字符.