.net自带的string的indexof什么的,总是需要指定开始字符和要操作的字符长度,我用起来很不舒服,自己封了几个函数。
统一把输入参数改为开始字符和结束字符。
没有具体测,可能某些边界情况下有问题
1,正向查找
/// <summary>
/// 查找字符串
/// </summary>
/// <param name="find">字符串</param>
/// <param name="key">要查找的串</param>
/// <param name="startIndex">开始字符</param>
/// <param name="endIndex"></param>
/// <returns></returns>
static public int IndexOf(string find, string key, int startIndex = 0, int endIndex = -1)
{
if (endIndex == -1)
{
endIndex = find.Length - startIndex;
}
return find.IndexOf(key, startIndex, endIndex, StringComparison.OrdinalIgnoreCase);
}
2,反向查找
/// <summary>
/// 反向查找字符串
/// </summary>
/// <param name="find">字符串</param>
/// <param name="key">要查找的串</param>
/// <param name="startIndex">开始字符</param>
/// <param name="endIndex">结束字符</param>
/// <returns></returns>
static public int LastIndexOf(string find, string key, int startIndex = 0, int endIndex = -1)
{
if (endIndex == -1)
{
endIndex = find.Length-1;
}
return find.LastIndexOf(key, endIndex, endIndex-startIndex, StringComparison.OrdinalIgnoreCase);
}
3,截取字符串
/// <summary>
/// 截取字符串
/// </summary>
/// <param name="origin">字符串</param>
/// <param name="startIndex">开始字符</param>
/// <param name="endIndex">结束字符</param>
/// <returns></returns>
static public string CutString(string origin, int startIndex, int endIndex = -1)
{
if (endIndex == -1)
{
endIndex = origin.Length - 1;
}
return origin.Substring(startIndex, endIndex - startIndex + 1);
}
4,删除字符串
static public string RemoveString(string origin, int startIndex, int endIndex)
{
return origin.Remove(startIndex, endIndex - startIndex + 1);
}