我在这里有两个for循环,以便将四个字符串的每个字母与一个密码进行比较。每当字符相等时,我想输出一个B,但是,只有当字符在字符串中但不在同一个点时;类似于游戏Mastermind。我的解决方案是在if语句中添加一个额外的条件,如果a!= b,条件就满足了。是否有一种方法可以使整数a和b表示字符串中字符的特定索引号?
for (int h = 0; h <= 3; h++)
{
for (int k = 0; k <= 3; k++)
{
if (secretCode[h] == userGuess[k]&&a != b)
{
Console.Write("B");
}
}
}
您可以使用IndexOf
检查字符串中的位置,如下所示:
var a = "hello";
var b = "holle";
for(int j = 0; j < a.Length; j++)
{
var idx = b.IndexOf(a[j]);
//Check for -1, if it's -1 then the char isn't in the string
if(idx != j && idx != -1)
Console.Write("B");
}