我写了一个程序,计算两个字符串的差异或计算汉明距离是什么.
我在调试模式下运行.我看到,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],但这些都没有解决我的问题.
Console.Read()从缓冲区中读取第一个字符.此字符不会包含在ReadLine().
我个人会找到一种更好的方法来结束你的程序,例如if first=="quit"或其他一些语法手段.
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |