преобразование строк, первый символ, верхний из каждого слова

enter image description here

7
задан leora 22 July 2009 в 21:23
поделиться

4 ответа

string name = "HECHT, WILLIAM";
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower());

(обратите внимание, что он работает только с нижнего регистра, отсюда начинается нижний регистр)

31
ответ дан 6 December 2019 в 05:39
поделиться

Это потому, что разыменование всегда происходит, когда имя недоступно. Значение загружается в стек операндов, а затем передается одному из кодов операций JRE, который разыменовывает его. Однако у стека операндов нет имени, которое можно было бы связать с нулевым значением. Все, что у него есть, это «ноль». С помощью некоторого умного кода отслеживания времени выполнения можно получить имя, но это добавит накладных расходов с ограниченным значением.

Из-за этого нет опции JRE, которая включала бы дополнительную информацию для исключений нулевого указателя.

В этом примере ссылка сохраняется в локальном слоте 1, который отображается на имя локальной переменной. Но разыменование происходит в инструкции invokevirtual, которая видит в стеке только «нулевое» значение, а затем выдает исключение:

5
ответ дан 6 December 2019 в 05:39
поделиться
    public static string CamelCase(this string s)
    {
        if (String.IsNullOrEmpty(s))
            s = "";
        string phrase = "";
        string[] words = s.Split(' ');
        foreach (string word in words)
        {
            if (word.Length > 1)
                phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";
            else
                phrase += word.ToUpper() + " ";

        }
        return phrase.Trim();
    }
0
ответ дан 6 December 2019 в 05:39
поделиться

Я проголосовал за ответ Марка, но это тоже сработает:

string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0);

Вам нужно будет добавить соответствующие ссылки, но я почти уверен, что он работает со всеми верхними входами.

0
ответ дан 6 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: