Замена каждой буквы алфавита в строку? - PullRequest
1 голос
/ 27 марта 2009

Вот что я написал до сих пор:

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 #, поэтому я спрашиваю.

Решения были бы отличными! Спасибо!

Ответы [ 3 ]

3 голосов
/ 27 марта 2009

Вам все еще нужно написать функцию getSoundForChar (), но это должно сделать то, что вы просите. Я не уверен, однако, что то, что вы спрашиваете, будет делать то, что вы хотите, то есть воспроизводить звук для соответствующего персонажа. Возможно, вам лучше положить их в список для этого.

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;
}
1 голос
/ 27 марта 2009

Проблема в том, что вы делаете несколько проходов данных. Попробуйте просто пройтись по символам строки в цикле и заменить каждый символ «из» его строкой «до». Таким образом, вы не вернетесь назад к строке и не выполните те символы, которые уже были заменены.

Кроме того, создайте отдельную строку вывода или массив вместо изменения оригинала. В идеале используйте StringBuilder и добавьте к нему новую строку (или исходный символ, если не заменяете этот символ).

0 голосов
/ 27 марта 2009

Я не знаю способа одновременной замены разных символов в C #.

Вы можете зациклить все символы и построить строку результата из этого (используйте строитель строк, если входная строка может быть длинной). Для каждого символа вы добавляете его замену к строке результата (строитель).

Но что ты пытаешься сделать? Я не могу придумать полезного применения добавления путей к файлам без разделителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...