Unicode特殊字符转换

时间:2016-02-26 16:20:10

标签: python swift unicode special-characters

我制作了一个[String: [String]]类型的字典。值表示名称列表,而键表示所有这些名称的起始字母。得到它了?

好。现在,我可以通过检测其首字母的算法将名称附加到其键阵列。这是我的问题开始的地方。我想将以特殊字符开头的名称"Ø"放入"O"-key-array

这样的事情:

"Øder" ----->检测第一个字母的算法------> ["0": ["Øder", ...]]

我的方法是将第一个字母转换为Unicode并检查它是否是特殊字符并将其转换为相关的拉丁字母。

这是要走的路,还是我不考虑的简单解决方案?

1 个答案:

答案 0 :(得分:0)

这在Swift中很有效:

let names = ["test", "another", "two", "øder"]

let index = names.reduce([Character: [String]]()) {
  (var initial: [Character: [String]], current: String) -> [Character: [String]] in
  if let first = current.characters.first
    where initial[first]?.append(current) == nil {
      initial[first] = [current]
  }

  return initial
}

print(index) // -> ["ø": ["øder"], "t": ["test", "two"], "a": ["another"]]

不幸的是,我无法找到任何将unicode字符转换为更简单的ASCII形式的函数。也许可以使用这样的映射创建某种字典。