缺少C#第一个字符串元素

bla*_*ces 3 c# string

我写了一个程序,计算两个字符串的差异或计算汉明距离是什么.

我在调试模式下运行.我看到,string first字符串的第一个元素缺失了.但是string second很好!

当我测试第一个长度和第二个长度相等时.

例如: 我键入了这个:00011在调试模式下它只是值:0011.或者我打字:"这个",在调试中真正的价值只是"他的"

有人可以解释一下,为什么要错过字符串的第一个元素?

代码:

    while (Console.Read() != 'X')
    {
            string first = Console.ReadLine();
            string second = Console.ReadLine();

            int distance = 0;

            for (int i = 0; i < first.Length; i++)
            {
                if (first[i]!= second[i])
                {
                    ++distance;
                }
            }
            Console.WriteLine("Hamming distance is {0}.", distance);
        }
Run Code Online (Sandbox Code Playgroud)

我尝试修改迭代,例如循环是++ i,或第一个[i-1],但这些都没有解决我的问题.

Coi*_*oin 6

Console.Read()从缓冲区中读取第一个字符.此字符不会包含在ReadLine().

我个人会找到一种更好的方法来结束你的程序,例如if first=="quit"或其他一些语法手段.