要根据城市名称获取城市编号,首先要创建一个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