package cn.ksource.core.util; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.StringUtil; public class SplitIDUtil { public static int EnglishChar2Int(String schar) { switch (schar.charAt(0)) { case 'a': return 0; case 'b': return 1; case 'c': return 2; case 'd': return 3; case 'e': return 4; case 'f': return 5; case 'g': return 6; case 'h': return 7; case 'i': return 8; case 'j': return 9; case 'k': return 10; case 'l': return 11; case 'm': return 12; case 'n': return 13; case 'o': return 14; case 'p': return 15; case 'q': return 16; case 'r': return 17; case 's': return 18; case 't': return 19; case 'u': return 20; case 'v': return 21; case 'w': return 22; case 'x': return 23; case 'y': return 24; case 'z': return 25; default: return 0; } } /** * ID取膜 * * @param id * @param basic * @return */ public static int getSplit(String id, int basic) { String[] ids = id.split(""); int count = 0; for (String string : ids) { if (StringUtils.isNotBlank(string)) { if (NumberUtils.isNumber(string)) { count += ConvertUtil.obj2Int(string); } else { count += EnglishChar2Int(string); } } } return count%basic; } }