在swift 3中比较英语和非英语的字符串

时间:2017-05-28 12:21:23

标签: ios swift swift3

我正在开发一个多语言应用, 在某些我需要计算英语字符和阿拉伯语字符来决定

nameLabel.textAlignment = .right

nameLabel.textAlignment = .left

例如,有些文字如下:

  

بازی愤怒的小鸟بسیاربازیجذابیاست

需要.right文字对齐和

  

愤怒的小鸟是一个令人兴奋的游戏

需要.left文字对齐! 我想通过从服务器计算英语和非英语字符来判断这一点。

这里的最佳做法是什么?

2 个答案:

答案 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"))