/**
* 字符串工具: 判断一个字符串中是否包含指定个数的子字符串
* 例如字符串"head.payload.sign"中是否包含2个"."
* @param source 待判断字符串
* @param substr 带查找的子字符串
* @param count 要求计算的个数
* @return boolean 判断结果布尔值
*/
public static boolean hasSubstringCount(String source, String substr, int count) {
int substringCount = 0;
int index = 0;
while ((index = source.indexOf(substr, index)) != -1) {
substringCount++;
// 下一次查找从本次找到的索引后的子字符后面继续
index += substr.length();
}
return substringCount == count;
}
记一次判断字符串中是否包含指定个数的子字符串个数,这对于多段分割的字符串后续分割处理的预处理是很有用的,也可以用org.apache.commons.lang3.StringUtils提供的countMatches来实现
if(StringUtils.countMatches(source, substr) == 2){
// ......
}