输入一组手机号码,要求进行分析判断,并且返回处理后的数据

正在写一套短信群发的系统
遇到一个棘手的问题,请教大家了

方法的需求大致是这样的:

传入一组(可能是上百个)半角逗号隔开的手机号,要求把手机号按照运营商进行分类,再把手机号分别存到3个表的Nuber字段中.
还有个限制就是,那个Nuber字段每次只能存2个号码.

比如入传入参数是(1118,3332,1114,1115,2224,2225,3336,2226,2228,3339,1119,1110) ,

这里的111,222,333只是便于辨认,并不是说就是这样的号码,因此可能不能用正则表达式进行拆分.

经过处理,我要存到数据库的内容是这样的
表1

 

ID Nuber
1 1118,1114
2 1115,1119
3 1110

 

表2

 

ID Number
1 2224,2225
2 2226,2228

 

表3

 

ID Number
1 3332,3336
2 3339


 

 

关于手机号码处理的这部分,希望有人能帮助一下小弟,下面贴出部分代码,大家帮忙参考一下(超出2个号码的处理,还没做).

 

/**
 * 检测参数中手机号(或手机号列表)的合法性. 
 * 参数mobiList为空,则返回空;
 * 
 * @param mobiList
 *            :发送对象手机号(或手机号列表,用半角逗号分隔)
 * @return mobiLists
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public static List CheckMobi(String mobiList) {
	// 如果参数中没有号码,则返回空
	if (("".equals(mobiList)) || (null == mobiList)) {
		return null;
	}
	// 手机号码用半角逗号分开
	String[] tmpArr = mobiList.split(",");
	// 处理后的手机号列表
	List mobiLists = new ArrayList();
	// 移动手机号
	StringBuffer mobi_m = new StringBuffer();
	// 联通手机号
	StringBuffer mobi_u = new StringBuffer();
	// 电信手机号
	StringBuffer mobi_t = new StringBuffer();
	// 进行分析处理
	for (int i = 0; i < tmpArr.length; i++) {
		// 获取此号码号段信息
		smsPrefix = CheckPrefixExist(tmpArr[i].substring(0, 3));
		// 如果号段信息不存在,则返回空
		if ("".equals(smsPrefix) || null == smsPrefix) {
			return null;
		}
		// 将不同运营商的号码放入不同分组
		switch(Integer.parseInt(smsPrefix.getStatus()))
		{
		case 0:
			mobi_m.append(tmpArr[i]).append(",");
			break;
		case 1:
			mobi_m.append(tmpArr[i]).append(",");
			break;
		case 2:
			mobi_m.append(tmpArr[i]).append(",");
			break;
		}
	}
	mobiLists.add(mobi_m);
	mobiLists.add(mobi_u);
	mobiLists.add(mobi_t);
	return mobiLists;
}

 

 

你可能感兴趣的:(企业应用)