如何有效地获取最后一个Unicode文本元素

时间:2017-03-30 10:09:37

标签: c#

如何在不迭代整个字符串的情况下获取字符串的最后一个Unicode文本元素? System.Globalization.StringInfo提供了两种方法,但我怀疑它们枚举整个字符串:

- debug: msg='key contains {{key}}'
  with_consul_kv:
  - 'config/app1/'
  register: keys

 - name: add a kv pair to the kv store
   consul_kv: key=somekey value=somevalue
   register: new_key

1 个答案:

答案 0 :(得分:0)

高效的最后一个Unicode文本元素

如果你只是指最后一个unicode代码点,那么它很容易:

string unicode = Target.Length >= 2 && char.IsLowSurrogate(Target, Target.Length - 1) && char.IsHighSurrogate(Target, Target.Length - 2) 
    ? Target.Substring(Target.Length - 2, 2) 
    : Target.Substring(Target.Length - 1, 1).ToString();

如果你的意思是最后一个字形(所以最后一个代码点,例如可能跟随它的组合标记,所以可能有多个代码点,如e + ◌̃),它更复杂。 / p>