package com.javalaoniu.tool.utils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 身份证地址提取省市区工具类
*/
public class AddressResolutionUtil {
/**
* 根据身份证地址提取省市区工具类
*
* @param address
* @return
*/
public static List<Map<String, String>> addressResolution(String address) {
String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<district>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
Matcher m = Pattern.compile(regex).matcher(address);
String province = null, city = null, district = null, town = null, detail = null;
List<Map<String, String>> table = new ArrayList<Map<String, String>>();
Map<String, String> row = null;
while (m.find()) {
row = new LinkedHashMap<String, String>();
province = m.group("province");
row.put("province", province == null ? "" : province.trim());
city = m.group("city");
row.put("city", city == null ? "" : city.trim());
district = m.group("district");
row.put("district", district == null ? "" : district.trim());
town = m.group("town");
row.put("town", town == null ? "" : town.trim());
detail = m.group("detail");
row.put("detail", detail == null ? "" : detail.trim());
table.add(row);
}
return table;
}
public static void main(String[] args) {
System.out.println(addressResolution("广东省深圳市福田区梅林街道办事处国际金融科技大厦"));
System.out.println(addressResolution("山东省德州市禹城市伦镇堂子街村235号"));
}
}
@Test
public void testDecimalFormat() {
System.out.println(format("####.##", new BigDecimal("0012.00")));// 12
System.out.println(format("0000.00", new BigDecimal("0012.00")));// 0012.00
System.out.println(format("#00.00", new BigDecimal("0012.00")));// 12.00
System.out.println(format("000.00", new BigDecimal("0012.00")));// 012.00
System.out.println(format("#.00", new BigDecimal("0012.00")));// 12.00
System.out.println(format("0.00", new BigDecimal("0012.00")));// 12.00
}
SELECT
COUNT (1)
FROM
(
select
(
CASE
WHEN b.type = 0 then '自住户' WHEN b.type = 1 then '租户' WHEN b.type = 4 then '常客' else '其他'
end
) "type"
from
zhsq_housing_information b
left join zhsq_user_info a on
b.user_id = a.id
where to_char (to_Date(b.create_time,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd') between to_char (to_Date(#{startTime},'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd')
and to_char (to_Date(#{endTime},'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd')
)
/**
* 使用java.text.DecimalFormat实现
*
* @param x
* @param y
* @return
*/
public static String getPercent(int x, int y) {
if (x == 0) return "0.00%";
double d1 = x * 1.0;
double d2 = y * 1.0;
// 设置保留几位小数, “.”后面几个零就保留几位小数,这里设置保留两位小数
DecimalFormat decimalFormat = new DecimalFormat("##.00%");
return decimalFormat.format(d1 / d2);
}
函数: