2014-04-06 519 views
1

我正在学习C#,我从头开始构建一个hang子手游戏作为我的第一个项目之一。将字符串[index]与另一个字符串进行比较

除了用正确猜测的字母替换隐藏单词的破折号的部分以外的所有内容均可正常工作。

例如:-----成为G-EA-你猜G,E,和A.

后,我有一个循环逻辑上好像它会除了我不能做的工作对字符串或字符使用==运算符。

for (int i = 0; i <= answer.Length; i++) //answer is a string "theword" 
      { 
       if (answer[i] == passMe) //passMe is "A" for example 
       { 
        hiddenWord = hiddenWord.Remove(i, 1); 
        hiddenWord = hiddenWord.Insert(i, passMe); 
       } 
      } 

我已经搜遍了网络,试图找到一个好的解决方案。大多数人推荐使用正则表达式或其他我尚未学习的命令,因此不完全理解如何实现。

我试过转换两个字符格式,希望它能修复它,但到目前为止没有运气。预先感谢您的帮助。

+1

你在哪里定义'passMe' –

回答

2

如果passMe只有这样

if (answer[i] == passMe[0]) 

一个字符的字符串,这样,您在第i个位置的字符,在用户输入的第一个位置

有比较字符在你的代码中也是一个严重的错误。 你的环由一个熄灭时,在索引零它更改为

for (int i = 0; i < answer.Length; i++) 

在NET开始的阵列和,最大索引值可能的,总是比阵列的长度少一个。

+0

像魅力一样工作,谢谢! –

0

answer [i]指字符,而passMe是单个字符串。 (不是一个字符)

试试这个

for (int i = 0; i <= answer.Length; i++) //answer is a string "theword" 
      { 
       if (answer[i] == passMe[0]) //passMe is "A" for example 
       { 
        hiddenWord = hiddenWord.Remove(i, 1); 
        hiddenWord = hiddenWord.Insert(i, passMe); 
       } 
      } 

你需要一个字符一个字符进行比较。

相关问题