gpt4 book ai didi

swift - 从国家代码中获取带有 3 个字母的国旗表情符号/字符串

转载 作者:行者123 更新时间:2023-11-28 13:47:58 25 4
gpt4 key购买 nike

我有一系列国家/地区,这些国家/地区代码以 3 个字母表示(ISO 3166-1 alpha-3 国家/地区代码)。

例如。 “USA”代表美利坚合众国

我有一个方法可以从 2 个字母中给我标记表情符号/字符串,即“美国”而不是“美国”。

以下方法适用于 2 个字母的国家代码,但不适用于 3 个字母的国家代码。

func flag(countryCode: String) -> String? {
var string = ""
let country = countryCode.uppercased()

let regionalA = "🇦".unicodeScalars
let letterA = "A".unicodeScalars
let base = regionalA[regionalA.startIndex].value - letterA[letterA.startIndex].value

for scalar in country.unicodeScalars {
guard let regionalScalar = UnicodeScalar(base + scalar.value) else { return nil }
string.unicodeScalars.append(regionalScalar)
}
return string.isEmpty ? nil : string
}

如何从 3 个字母的国家/地区代码中获取标志?

最佳答案

编写一个包含所有 CountryCode 翻译的翻译集合。在这个对象中,我将放置 2 个字段或属性。一个是 tripleCountryCode Prop /字段,另一个类似于 dualCountryCode Prop /字段......

O.C.您将必须输入每个必须手动翻译的代码,如下所示:(我使用 Typescript 是因为它是我的主要编码语言,而且它看起来与您的代码相似,所以也许您可以使用它...)

typescript 代码

// We take an interface as the object declaration
export interface TranslatedCountryCode {
tripleCode: string;
dualCode: string;
}

// We set up a class to handle the translations
export class TranslationClass {
static translations: TranslatedCountryCode[] = [
{ tripleCode: "USA", dualCode: "US" },
{ tripleCode: "GER", dualCode: "DE" },
{ tripleCode: "GBR", dualCode: "GB" } // And so on....
];
static GetDualTranslation(tripleCode: string): string | null {
for (var key in this.translations)
// If we find something we return it....
if (tripleCode === this.translations[key].tripleCode)
return this.translations[key].dualCode;
// If we don't find any translation we return null....
return null;
}
static GetTripleTranslation(dualCode: string): string | null {
for (var key in this.translations)
// If we find something we return it....
if (dualCode === this.translations[key].dualCode)
return this.translations[key].tripleCode;
// If we don't find any translation we return null....
return null;
}
}

然后你可以像这样简单地调用翻译:

TranslationClass.GetDualTranslation("USA") // Returns US

TranslationClass.GetTripleTranslation("US") // Returns USA

如果对您有帮助,请点个赞,不胜感激。

亲切的问候

编辑:我注意到你可以 o.c.也拿一本字典,但是你必须将每一个翻译都输入到三码字典和双码字典中......我用 for 循环解决了它以避免双重赋值。

关于swift - 从国家代码中获取带有 3 个字母的国旗表情符号/字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159587/

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