/// <summary> /// 检查字符串指定索引位置之后是否包含指定个数的十六进制字符。 /// </summary> /// <param name="str">要检查十六进制字符个数的字符串。</param> /// <param name="index">要开始计算十六进制字符个数的起始索引。</param> /// <param name="maxLength">需要的十六进制字符个数。</param> /// <returns>如果包含指定个数的十六进制字符,则为 <c>true</c>;否则为 <c>false</c>。</returns> private static bool CheckHexLength(string str, int index, int maxLength) { if (index + maxLength > str.Length) { return(false); } for (int i = 0; i < maxLength; i++, index++) { if (!CharExt.IsHex(str, index)) { return(false); } } return(true); }
/// <summary> /// 返回字符串指定索引位置之后的十六进制字符的个数。 /// </summary> /// <param name="str">要获取十六进制字符个数的字符串。</param> /// <param name="index">要开始计算十六进制字符个数的其实索引。</param> /// <param name="maxLength">需要的最长的十六进制字符个数。</param> /// <returns>实际的十六进制字符的个数。</returns> internal static int GetHexLength(string str, int index, int maxLength) { if (index + maxLength > str.Length) { maxLength = str.Length - index; } for (int i = 0; i < maxLength; i++, index++) { if (!CharExt.IsHex(str, index)) { return(i); } } return(maxLength); }