【发布时间】:2016-04-13 05:40:43
【问题描述】:
我想获取 xx in
的第一个字母的索引xx INC FFFFFFFF xx DE RRRRRR
IndexOf 方法没有帮助。
有什么线索吗?
【问题讨论】:
-
为什么
IndexOf没有帮助?您是否尝试过允许指定起始位置的重载? msdn.microsoft.com/en-us/library/7cct0x33%28v=vs.110%29.aspx
我想获取 xx in
的第一个字母的索引xx INC FFFFFFFF xx DE RRRRRR
IndexOf 方法没有帮助。
有什么线索吗?
【问题讨论】:
IndexOf 没有帮助?您是否尝试过允许指定起始位置的重载? msdn.microsoft.com/en-us/library/7cct0x33%28v=vs.110%29.aspx
您可以使用这样的扩展方法,它使用支持起始索引的overload of String.IndexOf。 StringComparison 可用于不区分大小写的比较:
public static IList<int> AllIndexOf(this string text, string str, StringComparison comparisonType = StringComparison.CurrentCulture)
{
IList<int> allIndexes = new List<int>();
int index = text.IndexOf(str, comparisonType);
while (index != -1)
{
allIndexes.Add(index);
index = text.IndexOf(str, index + str.Length, comparisonType);
}
return allIndexes;
}
那么就很简单了:
string str = "xx INC FFFFFFFF xx DE RRRRRR";
IEnumerable<int> allIndexes = str.AllIndexOf("xx", StringComparison.InvariantCulture); // 0 and 16
【讨论】: