有没有办法将字符串的索引称为int,以便按索引号操作和选择字符串中的某些字符?

问题描述 投票:-1回答:1

我在这里有两个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");
                }

            }
        }
c# string
1个回答
3
投票

您可以使用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");
}
© www.soinside.com 2019 - 2024. All rights reserved.