gpt4 book ai didi

ios - 检查字符串是拉丁文还是西里尔文

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:39 24 4
gpt4 key购买 nike

有没有办法检查一些字符串是拉丁文还是西里尔文?我试过 localizedCompare String 方法,但它没有给我需要的结果。

最佳答案

像这样的东西怎么样?

extension String {
var isLatin: Bool {
let upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let lower = "abcdefghijklmnopqrstuvwxyz"

for c in self.characters.map({ String($0) }) {
if !upper.containsString(c) && !lower.containsString(c) {
return false
}
}

return true
}

var isCyrillic: Bool {
let upper = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"
let lower = "абвгдежзийклмнопрстуфхцчшщьюя"

for c in self.characters.map({ String($0) }) {
if !upper.containsString(c) && !lower.containsString(c) {
return false
}
}

return true
}

var isBothLatinAndCyrillic: Bool {
return self.isLatin && self.isCyrillic
}
}

用法:

let s = "Hello"
if s.isLatin && !s.isBothLatinAndCyrillic {
// String is latin
} else if s.isCyrillic && !s.isBothLatinAndCyrillic {
// String is cyrillic
} else if s.isBothLatinAndCyrillic {
// String can be either latin or cyrillic
} else {
// String is not latin nor cyrillic
}

考虑在某些情况下给定的字符串可能是两者,例如字符串:

let s = "A"

可以是拉丁文或西里尔文。这就是为什么有“两者兼而有之”的功能。

也可以都不是:

let s = "*"

关于ios - 检查字符串是拉丁文还是西里尔文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722464/

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