【问题标题】:Creating a new character from a string in Swift在 Swift 中从字符串创建一个新字符
【发布时间】:2018-05-20 12:36:17
【问题描述】:

这是一个有点奇怪的问题。是否有可能在 Swift 中从字符串创建一个新字符。假设"aa" 将被识别为与"a" 不同的字符。与"\n""\t" 被识别为单个字符的方式相同,尽管严格来说它们由另外两个字符组成,并且当您遍历包含它们的字符串时,它们将显示为单个字符。即使这个问题的解决方案是 janky 或奇怪的,它也会为我节省大量时间。

【问题讨论】:

  • 我不知道有没有办法做到这一点,但是你能通过使用String.split()String.replacingOccurences() 方法得到你需要的吗?
  • 最好更好地解释您正在尝试做什么以及为什么要将“aa”视为单个字符。

标签: swift string character


【解决方案1】:

在swift中,您可以将字符串中的所有字符转换成这样的字符集,然后再转换成字符串:

let stringData : String = "aa"
var charactersSet = Set(stringData)// ["a"]

let finalResult = String(charactersSet)
/// output = "a"

【讨论】:

    【解决方案2】:

    Swift 的 Character 类型的每个实例都代表一个扩展的字素簇。扩展字素簇是一个或多个 Unicode 标量的序列,这些标量(组合时)产生单个人类可读字符。

    来源:Strings and Characters

    Unicode Standard Annex #29 详细介绍了确定和定制字素簇边界所涉及的问题,其中提供了一些示例和一些算法。

    来源:Characters and Grapheme Clusters

    所以答案是“不”。你无法改变 Swift 所认为的 Character,由 Unicode 标准定义并编译 进入 Swift 运行时库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 2014-12-25
      • 2013-08-11
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多