首页 > 其他分享 >如何根据城市名称获取城市编号

如何根据城市名称获取城市编号

时间:2023-09-06 21:33:16浏览次数:25  
标签:文件 code citycodes String 城市 获取 编号 UTF properties

要根据城市名称获取城市编号,首先要创建一个CityCodeUtils工具类

public class CityCodeUtils {

    private static Properties properties = new Properties();
    public static String DEFAULT_CODE = "101010100";

    private CityCodeUtils() {
    }

    static  {
        ClassLoader classLoader = CityCodeUtils.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("citycodes.properties");
        try {
            properties.load(new InputStreamReader(is, "UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String getCityCode(String cityName) {
        String code = properties.getProperty(cityName);
        return code;
    }
}

其次,确保已经在项目的类路径下创建了名为citycodes.properties的属性文件,并在文件中定义了城市名称和对应的城市编号。例如,citycodes.properties文件内容可能如下所示:

北京=101010100
海淀=101010200
朝阳=101010300
顺义=101010400
怀柔=101010500
通州=101010600

使用CityCodeUtils类中的getCityCode方法。该方法将根据给定的城市名称从citycodes.properties文件中查找并返回对应的城市编号

如果citycodes.properties文件中的城市名称在读取时出现乱码,可能是由于文件的编码方式与Java虚拟机的默认编码方式不匹配所导致的。可以尝试以下方法来解决乱码问题:

1、确保citycodes.properties文件使用UTF-8编码保存。您可以使用文本编辑器(如Notepad++、Sublime Text等)来检查和更改文件的编码方式。

2、在加载citycodes.properties文件之前,将InputStream包装在InputStreamReader中,并指定正确的字符编码。例如,如果citycodes.properties文件使用UTF-8编码保存,可以使用以下代码:

static {
    ClassLoader classLoader = CityCodeUtils.class.getClassLoader();
    InputStream is = classLoader.getResourceAsStream("citycodes.properties");
    try {
        properties.load(new InputStreamReader(is, "UTF-8"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

通过将InputStream包装在InputStreamReader中,并指定正确的字符编码为UTF-8,可以确保在加载citycodes.properties文件时正确地解析城市名称。

如果citycodes.properties文件使用其他编码方式保存,请相应地更改InputStreamReader的字符编码。

3、在使用properties.getProperty方法获取城市编号之前,确保使用UTF-8编码进行解码。例如,可以使用以下代码:

public static String getCityCode(String cityName) {
    String code = properties.getProperty(cityName);
    if (code == null) {
        code = DEFAULT_CODE;
    } else {
        try {
            code = new String(code.getBytes("ISO-8859-1"), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
    return code;
}

通过使用new String(code.getBytes("ISO-8859-1"), "UTF-8")将获取的城市编号重新解码为UTF-8编码,可以确保正确地处理城市名称中的乱码。

根据实际情况选择适合的解决方案,并确保citycodes.properties文件的编码方式与Java虚拟机的默认编码方式匹配。

 

标签:文件,code,citycodes,String,城市,获取,编号,UTF,properties
From: https://www.cnblogs.com/hwj7/p/17683422.html

相关文章

  • 升哲科技城市级“算力+数字底座”服务亮相2023服贸会
    9月2日至6日,以“开放引领发展,合作共赢未来”为主题的2023年中国国际服务贸易交易会在北京隆重举办。作为城市级数据服务商,升哲科技(SENSORO)连续第四年参加服贸会,携城市级“算力+数字底座”服务及在城市治理领域的广泛应用成果亮相本届服贸会“北京市专精特新展区”,展现科技创新活力......
  • 编写软件检测报告有哪些注意事项?软件检测报告获取
    软件检测报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。一、编写软件检测报告的注意事项1、报告的结构要合理和清晰。应该按照一定的逻辑顺序,将软件的测试目标、测试环境、测试方法......
  • 案例分享丨计讯物联城市内涝监测方案
    方案背景对于极端超标暴雨频发或水面率下降,地表径流不断增大的城市而言,城市内涝是普遍存在的现象。尤其是在下穿隧道、公路桥、立交桥等地,轻则出现积水,导致车辆被淹,重则人民群众的生命安全受到威胁。随着智慧城市的建设进程,城市内涝监测俨然成为智慧城市治理的重要组成部分。 ......
  • Python开发实例(十二)天气预报应用:通过API获取天气数据,让用户输入城市并显示天气情况
    在这个实例中,我们将创建一个天气预报应用,使用Python的requests库来获取天气数据,并让用户输入城市名来显示该城市的天气情况。首先,你需要申请一个天气数据的API密钥。在这个示例中,我们将使用OpenWeatherMap提供的API,你可以在https://openweathermap.org/上注册并获取免费的API密钥......
  • Java获取请求者的真实ip地址
    在Java中,可以通过HttpServletRequest对象的getRemoteAddr()方法获取请求者的真实IP地址。以下是一个简单的示例:importjavax.servlet.http.HttpServletRequest;publicStringgetRealIpAddress(HttpServletRequestrequest){StringipAddress=request.getHeader("X-Fo......
  • HashCat获取 RAR、ZIP、office密码
    RAR压缩密码首先获取rar文件的hash值,我们可以使用另一款哈希破解工具John提供的rar2john工具将rar文件里的hash提取出来。rar2john下载地址:http://openwall.info/wiki/_media/john/johntheripper-v1.8.0.12-jumbo-1-bleeding-e6214ceab-2018-02-07-win-x64.7z......
  • C# 获取程序路径的几种方法及其区别
    在开发的程序中使用自定义的配置文件属于基本的操作了,但最近发现一个问题:如果程序是由用户通过exe文件直接打开的,获取同目录下配置文件不会有问题;但如果程序是由第三方应用启动的,通过不同方式获取的“当前目录”会有不同。以下是整理的几种获取当前目录的方式,及官方文档中的注释:......
  • IOS-开发获取tableview中cell的最终渲染宽度
    如图 我想要实现一个cell,里面有一个白色的消息区域宽度是整个cell的宽度减少20pt, 于是我写了_msgview.frame=CGRectMake(10,_time.bounds.origin.x+30,self.contentView.bounds.size.width-20,80);贴上完整代码-(instancetype)initWithStyle:(UITableViewCellStyle)......
  • 牛客——SQL253 获取有奖金的员工相关信息
    描述现有员工表employees如下:emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1985-11-21有员工奖金表emp_bonus:emp_noreceviedbtype100012010-01-011......
  • Oracle 从子查询中获取多个值(XTHS:实测可行)
    在本文中,我们将介绍如何从Oracle数据库的子查询中获取多个值。子查询是一个嵌套在主查询中的查询语句,用于从数据库中检索特定条件下的数据。在某些情况下,我们可能需要从子查询中获取多个结果,本文将详细介绍实现这一目标的不同方法。阅读更多:Oracle教程使用IN关键字的子查询......