我正在开发一个多语言应用程序,\n在某些地方我需要计算英语字符和阿拉伯语字符来决定
\n\nnameLabel.textAlignment = .right\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nnameLabel.textAlignment = .left\nRun Code Online (Sandbox Code Playgroud)\n\n例如像这样的一些文本:
\n\n\n\n\n\xd8\xa8\xd8\xa7\xd8\xb2\xdb\x8c 愤怒的小鸟 \xd8\xa8\xd8\xb3\xdb\x8c\xd8\xa7\xd8\xb1 \xd8\xa8\xd8\xa7\xd8\xb2 \xdb\x8c \xd8\xac\xd8\xb0\xd8\xa7\xd8\xa8\xdb\x8c \xd8\xa7\xd8\xb3\xd8\xaa
\n
需要.right文本对齐和
\n\n\n愤怒的小鸟是一款令人兴奋的游戏
\n
需要.left文本对齐!\n我想通过计算服务器中的英语和非英语字符来判断这一点。
这里的最佳实践是什么?
\n您可以检查所有字符,然后计算英语和非英语字符的数量。之后,您可以比较这些计数并决定您想要的对齐方式:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1175 次 |
| 最近记录: |