首先,您不必向char
您ss[i]
或其他人投射。ss[i]
和其他人已经char
。
其次,您尝试在 if 循环中连接两个 char ( ss[i+1]
and ss[i+2]
),并在使用 a 检查相等性之后string
。这是错误的。将其更改为;
if ( (ss[i] == '0') && (ss[i + 1] == '9') && (ss[i + 2]) == '1')
Console.WriteLine("found");
第三,我认为最重要的一点,不要编写那样的代码。您可以轻松使用String.Contains
完全符合您要求的方法。
返回一个值,该值指示指定的 String 对象是否出现在此字符串中。
string ss = "fc7600109177";
bool found = ss.Contains("091");
这里一个DEMO
.
使用“包含”仅返回真或假,“索引”返回字符串的位置,但我想在 ss 中找到“091”的位置,如果“091”重复如:ss =“763091d44a0914”我怎样才能找到第二个“091 “??
在这里,您如何找到字符串中的所有索引;
string chars = "091";
string ss = "763091d44a0914";
List<int> indexes = new List<int>();
foreach ( Match match in Regex.Matches(ss, chars) )
{
indexes.Add(match.Index);
}
for (int i = 0; i < indexes.Count; i++)
{
Console.WriteLine("{0}. match in index {1}", i+1, indexes[i]);
}
输出将是;
1. match in index: 3
2. match in index: 10
这里一个DEMO
.