【问题标题】:UTF-8 string array using graphemes vs split使用字形与拆分的 UTF-8 字符串数组
【发布时间】:2015-10-07 22:03:17
【问题描述】:

使用graphemessplit 从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))

这两种方法都会产生预期的输出。确实,

split(s, "") == collect(graphemes(s))

返回true

这两种方法似乎始终产生相同的结果。一种方法是否普遍优于另一种方法,无论是出于性能、风格还是其他方面?

(请注意,graphemes 返回的是迭代器而不是数组,因此是 collect。)

【问题讨论】:

    标签: arrays string utf-8 julia


    【解决方案1】:

    取决于您要查找的内容。 graphemes() 将返回用户认为是单个字符的内容,即使它们可能包含多个代码点;例如,与重音符号组合的字母是单个字素。 split() 不是这种情况。

    考虑一个 + ◌́ 。在此示例中,split() 将两个代码点作为单独的字符返回,而 graphemes() 将返回单个字符。

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 2014-03-06
      • 2023-03-27
      • 2015-07-01
      • 2016-03-22
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多