You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何通过ISO双字母国家代码获取大洲名称

根据ISO双字母国家代码获取大洲名称的解决方案

你提到的Locale.Region的continent属性仅返回BCP 47标识符(如"NA"代表北美洲),无法直接得到可读的大洲名称,以下是两种实用解决方法:

方法一:维护自定义国家-大洲映射表

自己构建一份ISO双字母国家代码到大洲名称的映射关系,这种方式简单直接,无需依赖外部资源,适合业务场景固定的需求。

示例代码(以Java为例):

import java.util.HashMap;
import java.util.Map;

public class ContinentMapper {
    private static final Map<String, String> COUNTRY_CONTINENT_MAP = new HashMap<>();

    static {
        // 初始化常见国家与大洲的映射,可按需补充更多条目
        COUNTRY_CONTINENT_MAP.put("US", "北美洲");
        COUNTRY_CONTINENT_MAP.put("CN", "亚洲");
        COUNTRY_CONTINENT_MAP.put("FR", "欧洲");
        COUNTRY_CONTINENT_MAP.put("ZA", "非洲");
        COUNTRY_CONTINENT_MAP.put("AU", "大洋洲");
        COUNTRY_CONTINENT_MAP.put("BR", "南美洲");
    }

    public static String getContinentName(String countryCode) {
        return COUNTRY_CONTINENT_MAP.getOrDefault(countryCode.toUpperCase(), "未知");
    }
}

优势:无外部依赖,响应速度快;缺点:需手动维护映射表,覆盖全量国家需要较多初始化工作。

方法二:通过Locale本地化资源获取大洲名称

利用continent属性返回的BCP 47标识符创建Locale实例,再调用本地化名称方法获取可读的大洲名称,无需手动维护映射。

示例代码(以Java为例):

import java.util.Locale;

public class ContinentNameFetcher {
    public static String getContinentName(String countryCode) {
        Locale.Region countryRegion = Locale.Region.of(countryCode);
        Locale.Region continentRegion = countryRegion.continent();
        
        if (continentRegion == null) {
            return "未知";
        }
        // 获取默认语言环境下的大洲名称,也可指定语言如Locale.CHINESE
        return continentRegion.getDisplayName();
    }
}

优势:无需手动维护映射,自动适配本地化语言;缺点:部分区域的本地化资源可能缺失,需提前测试覆盖范围。

内容的提问来源于stack exchange,提问作者lazarevzubov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:20:56