public static Map<String,String> getChinaNum(String str) { // str = "中行天津建国道支行(RMB)12345678中行天津河北支行(USD)098765432"; // str = "中国建设银行股份有限公司无锡坊前支行 320501617200000103"; Map<String,String> obj = new HashMap<>(); //获取数字与-,因为固定电话中有- String a = str.replaceAll("[^0-9-]", "_").replace("_+", "_"); String[] as = a.split("_+"); obj.put("num",replaceNull(as)); //获取汉字 String b = str.replaceAll("[^\\u4e00-\\u9fa5]", "_").replace("_+", "_"); String[] bs = b.split("_+"); obj.put("china",replaceNull(bs)); return obj; }
/** * 去除数组中的空串 * @param str * @return */ public static String replaceNull(String[] str){ StringBuffer sb = new StringBuffer(); for(int i=0; i<str.length; i++) { if("".equals(str[i])) { continue; } sb.append(str[i]); if(i != str.length - 1) { sb.append(","); } } return sb.toString(); }