gpt4 book ai didi

swift - String 的 `endIndex` 和 `count` 不同

转载 作者:搜寻专家 更新时间:2023-11-01 06:06:05 24 4
gpt4 key购买 nike

endIndexcountString 在 swift2 中怎么可能不同?这是我使用的代码示例。当所有字符都只有英文时,不会发生这种情况。

    print("count:",self.Label.text!.characters.count)
print("endIndex:",self.Label.text!.characters.endIndex)
print("String:",self.Label.text!)

输出:

count: 32
endIndex: 34
String: • (دستور زبان) مفعول‌به، مفعول‌عنه

最佳答案

String.CharacterView.Index 的原始值无关紧要,不应使用。它的原始值仅在 String 和 CharacterView 中有意义。

在您的情况下,一些 Unicode 字符只是组合修改相邻字符的字符以形成单个字素。例如,U+0300,组合重音:

    let str = "i\u{0300}o\u{0300}e\u{0300}"

print("String:",str)
print("count:",str.characters.count)
print("endIndex:",str.characters.endIndex)

var i = str.characters.startIndex
while i < str.characters.endIndex
{
print("\(i):\(str.characters[i])")
i = i.successor()
}

结果

String: ìòè
count: 3
endIndex: 6
0:ì
2:ò
4:è

关于swift - String 的 `endIndex` 和 `count` 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com