我正在开发一个多语言应用, 在某些我需要计算英语字符和阿拉伯语字符来决定
nameLabel.textAlignment = .right
或
nameLabel.textAlignment = .left
例如,有些文字如下:
بازی愤怒的小鸟بسیاربازیجذابیاست
需要.right
文字对齐和
愤怒的小鸟是一个令人兴奋的游戏
需要.left
文字对齐!
我想通过从服务器计算英语和非英语字符来判断这一点。
这里的最佳做法是什么?
答案 0 :(得分:3)
您可以浏览字符,然后计算英语和非英语的数量。之后,您可以比较这些计数并确定您想要的对齐方式:
let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") //add whatever characters you find English
var amountOfEnglishChars = 0
var amountOfNonEnglishChars = 0
for char in string.unicodeScalars {
if characterset.contains(char) {
amountOfEnglishChars += 1
}
else {
amountOfNonEnglishChars += 1
}
}
nameLabel.textAlignment = amountOfEnglishChars > amountOfNonEnglishChars ? .left : .right
答案 1 :(得分:0)
您可以使用范围创建CharacterSet
CharacterSet(charactersIn: "A"..."Z").union(CharacterSet(charactersIn: "a"..."z"))