簡體   English   中英

用字符串替換字母表中的每個字母?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM