2015-10-13 2 views
-1
string str = "ghy saste mater" 

Как заменить первую букву в каждом слове от str на букву «w»?Как заменить первую букву в каждом слове в строке?

Таким образом, новая строка будет выглядеть так:

"почему сточные воды"

Как я могу добиться этого?

+1

Не могли бы вы изложить свое определение _word_? Для сопоставления шаблонов это имеет особое значение. – canon

ответ

0

Вы можете разбить строку на массив и затем изменить первый символ в каждом элементе нового массива.

Что-то вроде:

string[] str_array = str.Split(' '); 

for (int i = 0; i < str_array.Length; i++) { 
    str_array[i] = "w" + str_array[i].Substring(1, str_array[i].Length); 
} 

Тогда вы должны превратить массив обратно в строку.

2

Вы взорвется string.Split() вашу строку, используя разделители из " " это даст вам массив строк, а затем вы можете цикл по всему массиву и называют:

string.Replace(string[0], 'w') 

Гораздо более впечатляющим способом сделать это будет использовать Regex.Replace() и написать регулярное выражение, чтобы найти комбинацию пробела и символа, а затем заменить эту строку пробелом и w.

something like " a" would be replaced with " w" 

Это действительно так, что я дал лишь некоторые подсказки. Посмотрите, о чем я говорил здесь, и с вами все будет в порядке.

+0

Это хороший! Спасибо, я посмотрю больше. – Alex

+1

Вот полезный инструмент для проб и ошибок при работе с Regex .. если вы решите пойти именно так. http://www.regexr.com/ – TheDude

0

Аккуратный способ заключается в использовании Regex.Replace():

string str = "ghy saste mater";   
var strModified = Regex.Replace(str, @"\b\w", "w"); 

Вы также можете использовать LINQ:

var str = "ghy saste mater" 
var strModified = string.Join(" ", str.Split().Select(s => "w" + s.Substring(1, s.Length - 1)))); 

Если вы измените струне много, следует использовать StringBuilder класс:

var str = "ghy saste mater" 
var strModified = str.Split().Select(s => "w" + s.Substring(1, s.Length - 1)). 
    Aggregate(new StringBuilder(), (b, s) => b.Append(s + " ")).ToString(); 
0

Попробуйте следующее:

string str = "ghy saste mater"; 
     string[] parts = str.Split(' '); 
     string result = string.Join(" ", parts.Select(p => "w" + (p.Length > 1 ? p.Substring(1, p.Length - 1) : "")).ToArray()); 
0

Просто перейдите через него.

string o = ""; 
o += str[0] 
for (int i = 1; i < str.length; i++){ 
    o+=str[i-1] == ' ' ? 'w' : str[i]; 
} 
Смежные вопросы