Разбить строку на символы

190
23 февраля 2018, 15:11

Можно ли в языке C# когда вводишь строку "string", например: "Собака" - разделить его на буквы "C", "о", "б", "а", "к", "а". Я знаю по функцию "Split", но там надо задавать место разделение, а мне нужно прям каждый символ и пробел тоже!

Answer 1

В классе string есть специальный метод ToCharArray, который возвращает массив символов. Также string реализует IEnumerable<char>, поэтому мы можем воспользоваться методом расширения из Linq ToArray. Выбирайте какой нравится (но подозреваю, что первый может работать быстрее, т.к. строке известна ее длина, а второй более универсальный метод и работает для любых последовательностей):

string s = "string";
char[] a = s.ToCharArray();
char[] b = s.ToArray();

Ну а если вам не нужно изменять данные, а только читать - можно воспользоваться индексатором: Console.WriteLine(s[0]);

Если вы хотите посимвольно отредактировать строку, то получите массив символов, как написано выше, отредактируйте любые элементы в нем и получите строку из конечного массива (у string есть конструктор, принимающий массив символов):

string s2 = new string(a);

Вместо массива можно использовать класс StringBuilder - он представляет изменяемую строку, индексатор у него поддерживает как чтение, так и запись:

string s1 = "string";
StringBuilder sb = new StringBuilder(s1);
sb[0] = 'b';
sb[1] = 'o';
string s2 = sb.ToString();
Console.WriteLine(s2);
Answer 2

Как вариант:

string str = "Собака";
foreach(char c in str)
{
   Console.WriteLine(c);
}
Console.ReadLine();
READ ALSO
Не работает массив из объектов класса [дубликат]

Не работает массив из объектов класса [дубликат]

На данный вопрос уже ответили:

189
Клиент не может подключиться к WCF-сервису

Клиент не может подключиться к WCF-сервису

Есть сервис с параметрами ServiceBehavior(InstanceContextMode = InstanceContextModeSingle, IncludeExceptionDetailInFaults = true, ConcurrencyMode = ConcurrencyMode

181
Как создать button без фона и границ?

Как создать button без фона и границ?

Вся суть в заголовкеНужна кнопка, которая бы отображалась как текст определенного цвета

214