2013-05-12 13 views
0

我是新來編程,所以我真的不知道如何標題這個,但我試圖通過比較字符串子字符串來替換字符串生成器對象中的字母,但它只能與最後一個字母,爲什麼?如何以同樣的方式替換中間的字母?替換子字符串只能在最後一個字母中起作用嗎?爲什麼?

string S = "Hello"; 
StringBuilder sB = new StringBuilder("*****"); 
Console.WriteLine(sB); 

string userInput = Console.ReadLine(); 

for (int i = 0; i < 5; i++) 
{ 
    if (userInput == S.Substring(i)) 
    { 
     sB.Remove(i, 1); 
     sB.Insert(i, userInput); 
     Console.WriteLine(sB); 
    } 
} 

Console.ReadKey(); 

任何幫助,將不勝感激。

回答

3

string.Substring(int) method返回整個子串從指示的字符索引開始,而不僅僅是一個字符。

若要檢索S的第i個字符,請使用S[i]

0

只有1個參數的子字符串將從該位置到字符串末尾的所有內容(「Hello」.Substring(1)將是「ello」)。只需要一個字母,您需要爲長度提供第二個參數(「Hello」.Substring(1,1)將是「e」)。

  if (userInput.Substring(i, 1) == S.Substring(i, 1)) 
      { 
       sB.Remove(i, 1); 
       sB.Insert(i, userInput.Substring(i, 1)); 
       Console.WriteLine(sB); 
      } 
0

您可能有興趣使用String.Contains(string comparison)來查看字符串是否在另一個字符串中。另外,String.Replace(string target, string replacement)可以替換可變長度的字符串,而不是循環遍歷字符。

相關問題