как сделать манипуляции со строками в C # - PullRequest
1 голос
/ 17 августа 2010

как я могу это сделать в c #

Взрывоопасно; динамичный человек

, если я делю то;удалено из текста

как я могу их сделать

Взрывоопасно; Динамичный человек

Ответы [ 5 ]

3 голосов
/ 17 августа 2010
string s = "Explosive;a dynamic person";
var separatorIndex = s.IndexOf(";");
if (separatorIndex != -1 && separatorIndex < s.Length + 1)
    s = s.Substring(0, separatorIndex + 1) + s.Substring(separatorIndex + 1, 1).ToUpper() + s.Substring(separatorIndex + 2);

Console.WriteLine(s);

дает "Взрывоопасный; Динамичный человек"

Полагаю, вы хотели бы что-то более общее, но из вопроса о том, насколько вы хотите, сложно понять.

1 голос
/ 17 августа 2010

Вам нужно будет присоединиться к результатам разделения, используя тот же разделитель, ; в этом случае.

string foo = "Explosive;a dynamic person";

string bar = string.Join(";",
    foo.Split(';')
       .Select(s =>
           s.Length == 0 ? s : s.Substring(0, 1).ToUpper() + s.Substring(1))
       .ToArray());

Console.WriteLine(bar);    // "Explosive;A dynamic person";

(И если вы используете .NET 4, вы можете пропустить последний ToArray вызов.)

1 голос
/ 17 августа 2010

Это должно работать:

string str = "Explosive;a dynamic person";
int poz = str.IndexOf(";");

string part1 = str.Substring(0, poz + 1);
string part2 = str.Substring(poz + 1);

str = part1 + part2[0].ToString().ToUpper() + part2.Substring(1);
0 голосов
/ 17 августа 2010

Возможно, это не самое элегантное решение, но оно подходит для вашей строки:

var str = "String;a string!";
var index = str.IndexOf(";") + 1;
var newString = str.Substring(0,index);

if( str[index] != ' ' )
{
     newString += Char.ToUpper(str[index]);
     newString += str.Substring( index + 1 );
}

Console.WriteLine(newString);
0 голосов
/ 17 августа 2010

Похоже, что вы хотите:

  1. Разделить строку
  2. Использовать прописные буквы первого символа каждого токена
  3. Объединить результаты в новую строку

Это должно сделать это:

string original = "Explosive;a dynamic person";
string[] split = original.Split(';');
string[] capitalized = split.Select(s => CapitalizeFirstLetter(s)).ToArray();
string joined = string.Join(";", capitalized);

string CapitalizeFirstLetter(string str)
{
    if (string.IsNullOrEmpty(str))
    {
        return str;
    }

    char[] chars = str.ToCharArray();
    char[0] = char.ToUpper(char[0]);

    return new string(chars);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...