2014-04-06 397 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); 
       } 
      } 

你需要一個字符一個字符進行比較。

相關問題