Java 代码解析地址字符串提取省市区镇社区信息
以下是我提供的新的 Java 代码示例,可以从输入的字符串中提取出省、市、区、镇、社区等信息:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AddressParser {
// 定义正则表达式,用于匹配省、市、区、镇、社区等信息
private static final String PATTERN_PROVINCE = "([\u4e00-\u9fa5]{1,3}(省|自治区))";
private static final String PATTERN_CITY = "([\u4e00-\u9fa5]{1,6}(市|自治州|地区))";
private static final String PATTERN_DISTRICT = "([\u4e00-\u9fa5]{1,9}(区|县|市|旗))";
private static final String PATTERN_TOWN = "([\u4e00-\u9fa5]{1,12}(街道|镇|乡))";
private static final String PATTERN_COMMUNITY = "([\u4e00-\u9fa5]{1,15}(社区|村|居委会))";
public static void main(String[] args) {
String input = "中国广东省深圳市南山区高新南一道9号科技园";
String[] address = parseAddress(input);
System.out.println("省份:" + address[0]);
System.out.println("城市:" + address[1]);
System.out.println("区县:" + address[2]);
System.out.println("街道镇:" + address[3]);
System.out.println("社区村居委会:" + address[4]);
}
public static String[] parseAddress(String input) {
String[] address = new String[5];
Pattern patternProvince = Pattern.compile(PATTERN_PROVINCE);
Matcher matcherProvince = patternProvince.matcher(input);
if (matcherProvince.find()) {
address[0] = matcherProvince.group();
input = input.substring(matcherProvince.end());
}
Pattern patternCity = Pattern.compile(PATTERN_CITY);
Matcher matcherCity = patternCity.matcher(input);
if (matcherCity.find()) {
address[1] = matcherCity.group();
input = input.substring(matcherCity.end());
}
Pattern patternDistrict = Pattern.compile(PATTERN_DISTRICT);
Matcher matcherDistrict = patternDistrict.matcher(input);
if (matcherDistrict.find()) {
address[2] = matcherDistrict.group();
input = input.substring(matcherDistrict.end());
}
Pattern patternTown = Pattern.compile(PATTERN_TOWN);
Matcher matcherTown = patternTown.matcher(input);
if (matcherTown.find()) {
address[3] = matcherTown.group();
input = input.substring(matcherTown.end());
}
Pattern patternCommunity = Pattern.compile(PATTERN_COMMUNITY);
Matcher matcherCommunity = patternCommunity.matcher(input);
if (matcherCommunity.find()) {
address[4] = matcherCommunity.group();
}
return address;
}
}
这段代码使用正则表达式匹配省、市、区、镇、社区等信息,并将这些信息存储在一个字符串数组中返回。在主函数中,我们可以将输入字符串作为参数传递给parseAddress()函数,并输出提取出的地址信息。
需要注意的是,该代码可能无法完全覆盖所有的地址格式,因此在实际应用中可能需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/nw54 著作权归作者所有。请勿转载和采集!