[英]Replacing each letter of the alphabet in a string?
這就是我到目前為止所寫的內容:
string omgwut;
omgwut = textBox1.Text;
omgwut = omgwut.Replace(" ", "snd\\space.wav");
omgwut = omgwut.Replace("a", "snd\\a.wav");
現在,問題是這個代碼會轉變
"snd\space.wav"
成
"snd\spsnd\a.wavce.wsnd\a.wavv"
在第四行。 不是我想要的! 現在我知道我不擅長C#,所以這就是我要問的原因。
解決方案會很棒! 謝謝!
你仍然需要編寫getSoundForChar()函數,但這應該是你要求的。 但是,我不確定你所要求的是否會做你想要的,即為相關角色播放聲音。 你可能最好把它們放在List <string>中。
StringBuilder builder = new StringBuilder();
foreach (char c in textBox1.Text)
{
string sound = getSoundForChar( c );
builder.Append( sound );
}
string omgwut = builder.ToString();
這是一個開始:
public string getSoundForChar( char c )
{
string sound = null;
if (sound == " ")
{
sound = "snd\\space.wav";
}
... handle other special characters
else
{
sound = string.Format( "snd\\{0}.wav", c );
}
return sound;
}
問題是您正在進行多次數據傳遞。 嘗試在循環中單步執行字符串的字符,並將每個'from'字符替換為'to'字符串。 這樣你就不會回到字符串上並重新做那些已被替換的字符。
此外,創建單獨的輸出字符串或數組,而不是修改原始。 理想情況下使用StringBuilder,並將新字符串(如果不替換此字符,則附加原始字符)附加到該字符串。
我不知道在C#中同時替換不同字符的方法。
您可以遍歷所有字符並從中構建結果字符串(如果輸入字符串可以很長,則使用字符串構建器)。 對於每個字符,將其替換附加到結果字符串(構建器)。
但是你想做什么? 我想不出沒有任何分隔符附加文件路徑的有用應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.