由于程序的需要,需要模糊匹配一些字符串,因为上游数据由于字段长度的限制,会随机舍去字符串的一部分字符串的数据,舍去的位置不固定,也不一定是连续的,比如"APCFH2ZDVEQ-SU22-24H05"舍去一定位数后变成"APCFH2ZDVEQSU24H05",或者"APCFH2ZDVEQSU22-24H03"舍去一定位数变成"APCFH2ZDVEQ-24H03",这样的数据将会判定有效,当获取的字符串出现原字符串的未出现的字符,或字符顺序错误将会判断为无效,有没有什么好的算法?
大家有什么方法贴出来
大家有什么方法贴出来
List有一个方法containAll().判断是否包括了所有的.
如果旧的没有全部包括新的,就是表示新的出现了旧的没有出现的字符
*
* @param befor 转换前的串
* @param after 转换后的串
* @return
*/
public static boolean checkString(String befor, String after)
{
if(null == befor || null == after || "".equals(befor.trim()) || "".equals(after.trim()))
{
return false;
}
int bl = befor.length();
int al = after.length();
for(int bi = 0,ai = 0;bi < al;ai++)
{
if(bi == al || ai == bl)
{
return false;
}
else if(befor.charAt(ai) == after.charAt(bi))
{
bi++;
}
}
return true;
}