首先,你不必强制转换为char
您ss[i]
或他人。 ss[i]
等已经是char
。
另一方面,您尝试在if循环中连接两个字符(ss[i+1]
和ss[i+2]
),并在与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
。如果你想知道“091”开头的字符串,然后你可以使用
非常感谢 – zozo
使用含有只返回true或fulse – zozo
@ZainabJawad所以..?不是你想要的吗? –