@Michael: Произошла ошибка компилятора. Как вы собираетесь использовать ToCharArray, если не так?
Крейг Джонстон
3
Для записи, ToCharArrayэто метод , вы должны сначала запустить его, например char[] chars = str.ToCharArray();, а затем использовать char first = chars[0];. Вы также можете вырезать это в str.ToCharArray()[0];. В любом случае, убедитесь, что вы проверили, что строка не равна нулю и имеет хотя бы один символ - вы можете сделать это, используя if(!String.IsNullOrEmpty(str)).
Коби
1
Крейг .. использование ToCharArray неправильно. Смотри мой ответ.
Наян
4
Хотите первый charили первый персонаж ? Если вы попробуете это, и, похоже, это сработает, попробуйте еще раз с 𣊾или 𣇞, что оба не удалось в программе, которую я использовал, которая была написана на C # с этой конкретной ошибкой.
hippietrail
Ответы:
382
Просто MyString[0]. Это использует индексатор String.Chars .
Разница между этим ответом и выбранным в том, что это решение возвращает строку, а другой возвращает символ.
Лоик Лопес
char получает только один символ, но мое решение может привести к нескольким, если хотите.
Санджай Кумаар
1
Это была просто точность, так как тип может иметь значение в зависимости от того, что вы хотите с ним делать.
Лоик Лопес
18
Разница между MyString[0]и MyString.ToCharArray()[0]заключается в том, что первый обрабатывает строку как массив только для чтения, а ToCharArray()создает новый массив. Первый будет быстрее (и легче) почти для всего, где он будет работать, но ToCharArrayможет понадобиться, если у вас есть метод, который должен принять массив, или если вы хотите изменить массив.
Если неизвестно, что строка ненулевая и не пустая, вы можете сделать следующее:
Правильным является MyString [позиция персонажа]. В вашем случае MyString [0], 0 является ПЕРВЫМ символом любой строки.
Символьное значение обозначается как «(одинарная кавычка), как это символьное значение x записывается как« x ».
Строковое значение обозначается "(двойная кавычка), как это значение x строки записывается как" x ".
Поэтому метод Substring () также не возвращает символ, метод Substring () возвращает строку !!!
Строка - это массив символов, и последний символ должен быть символом '\ 0' (нулевым). Это разница между массивом символов и строкой (который представляет собой массив символов с последним символом как «маркер конца строки» '\ 0', равным нулю).
А также обратите внимание, что «х» не равно «х». Потому что «х» на самом деле «х» + «\ 0».
ToCharArray
это метод , вы должны сначала запустить его, напримерchar[] chars = str.ToCharArray();
, а затем использоватьchar first = chars[0];
. Вы также можете вырезать это вstr.ToCharArray()[0];
. В любом случае, убедитесь, что вы проверили, что строка не равна нулю и имеет хотя бы один символ - вы можете сделать это, используяif(!String.IsNullOrEmpty(str))
.char
или первый персонаж ? Если вы попробуете это, и, похоже, это сработает, попробуйте еще раз с𣊾
или𣇞
, что оба не удалось в программе, которую я использовал, которая была написана на C # с этой конкретной ошибкой.Ответы:
Просто
MyString[0]
. Это использует индексатор String.Chars .источник
Mystring[0]
должно быть достаточноисточник
Попробуй это,
string s1="good"; string s=s1.Substring(0,1);
источник
Разница между
MyString[0]
иMyString.ToCharArray()[0]
заключается в том, что первый обрабатывает строку как массив только для чтения, аToCharArray()
создает новый массив. Первый будет быстрее (и легче) почти для всего, где он будет работать, ноToCharArray
может понадобиться, если у вас есть метод, который должен принять массив, или если вы хотите изменить массив.Если неизвестно, что строка ненулевая и не пустая, вы можете сделать следующее:
который возвращает
char?
либо ноль, либо первый символ в строке, в зависимости от ситуации.источник
char?
как способ включить возможность "нет первого символа".Вы можете использовать LINQ
Будет равно,
'\0'
если строка пуста.источник
Или вы можете сделать это:
источник
Просто другой подход:
источник
Я думаю, что вы ищете это
MyString.ToCharArray()[0]
:)
Но вы
MyString[0]
тоже можете использовать .источник
Следующий пример получения первого символа из строки может помочь кому-то
источник
MyString.Remove (1, 2); также работает
источник
Ответ на ваш вопрос НЕТ.
Правильным является MyString [позиция персонажа]. В вашем случае MyString [0], 0 является ПЕРВЫМ символом любой строки.
Символьное значение обозначается как «(одинарная кавычка), как это символьное значение x записывается как« x ».
Строковое значение обозначается "(двойная кавычка), как это значение x строки записывается как" x ".
Поэтому метод Substring () также не возвращает символ, метод Substring () возвращает строку !!!
Строка - это массив символов, и последний символ должен быть символом '\ 0' (нулевым). Это разница между массивом символов и строкой (который представляет собой массив символов с последним символом как «маркер конца строки» '\ 0', равным нулю).
А также обратите внимание, что «х» не равно «х». Потому что «х» на самом деле «х» + «\ 0».
источник
В C # 8 вы можете использовать диапазоны.
Добавьте
?
послеmyString
для обработкиnull
строк.источник
получение символа из строки может зависеть от конца (строка по умолчанию - UTF-16)
https://stackoverflow.com/a/32141891
источник