Рейтинг:
36
Jibesh
именно этот код создает для вас проблемы.
Вы проверяете вот так, если (array[i - 1] == ' ')
и присвоение такого массива[i]
for (int i = 1; i < array.Length; i++)
{
if (array[i] == ' ')
{
if (char.IsLower(array[i+1]))
{
array[i+1] = char.ToUpper(array[i+1]); // space is identified at Index i so next i+1 has to converted to Upper!!
}
}
}
Husain Sabir
это потому, что я инициализирован до 1.
Jibesh
Хорошо, извините, я понял, что вы не должны использовать i-1, Просто проверьте i и установите toArray i+1, потому что символ, за которым следует пробел, должен быть преобразован в верхний. Проверьте мое обновленное решение,
Husain Sabir
все еще не работает.
вот что я ввожу: "Хусейн Сабир".
вот что я получаю: "Хусейн Сабир".
Jibesh
вы уверены, что ваш код выглядит так
массив[i+1] = char.ToUpper(array[i+1]);
Husain Sabir
да, это именно так.
Jibesh
Это должно сработать наверняка! можете ли вы разместить свои изменения здесь, чтобы перепроверить то, что вы сделали.
Husain Sabir
может быть, у меня возникли проблемы с вызовом функции.
это правильный путь:
частная txtName_Leave недействительным(объект отправителя, EventArgs в электронной)
{
CapitalizeFirstLetters(txtManufacturerName.Text);
}
Jibesh
частная txtName_Leave недействительным(объект отправителя, EventArgs в электронной)
{
txtManufacturerName.Text = CapitalizeFirstLetters(txtManufacturerName.Text);
}
Husain Sabir
да, я это уже понял.
спасибо за потраченное время и усилия.
Рейтинг:
22
__TR__
Вот примерный подход
string Sampleinput = "husain sabir";
string Output = "";
string[] inputWords = Sampleinput.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach (string word in inputWords)
{
char[] a = word.ToCharArray();
a[0] = char.ToUpper(a[0]);
Output += new string(a) + " ";
}
Console.WriteLine(Output);
Husain Sabir
этот работает, но ничего не показывает.
я имею в виду,когда я ставлю точку останова и вижу, что outpu приходит как "Хусейн Сабир", но текстовое поле все равно показывает его как "Хусейн Сабир".
я вызываю функцию в событии leave моего текстового поля следующим образом:
частная txtName_Leave недействительным(объект отправителя, EventArgs в электронной)
{
Капитал(txtManufacturerName.Текст);
}
где "Capital" - это имя функции, в которой написан ваш код.
__TR__
Что делает метод капитала? Присваивает ли он выходные данные текстовому полю или просто возвращает строку ?
Husain Sabir
есть решение.
и ваше решение тоже работает.
Спасибо!
Jibesh
Вам нужно установить измененный текст обратно в текстовое поле.Свойство Text для отображения измененного текста. вызывая метод, вы pefromed только преобразование, чтобы отобразить его обновление текстового поля.Свойство text.