Подтвердить что ты не робот

Разделить строку на строковый массив одиночных символов

Я хочу сделать что-то так же просто, как превратить "this is a test" в

new string[] {"t","h","i","s"," ","a"," ","t","e","s","t"}

Я действительно должен был бы сделать что-то вроде

test = "this is a test".Select(x => x.ToString()).ToArray();

edit: Чтобы уточнить, мне не нужен массив char, в идеале я хочу массив строк. Я не вижу ничего плохого в этом коде, кроме того, что я думаю, что есть более простой способ.

4b9b3361

Ответ 1

Я считаю, что это то, что вы ищете:

char[] characters = "this is a test".ToCharArray();

Ответ 2

У строк в С# уже есть индекс char

string test = "this is a test";
Console.WriteLine(test[0]);

А...

if(test[0] == 't')
  Console.WriteLine("The first letter is 't'");

Это тоже работает...

Console.WriteLine("this is a test"[0]);

И это...

foreach (char c in "this is a test")
  Console.WriteLine(c);

ИЗМЕНИТЬ

Я заметил, что вопрос был обновлен в отношении массивов char []. Если у вас должен быть массив string [], вот как вы разбиваете строку на каждый символ в С#:

string[] test = Regex.Split("this is a test", string.Empty);

foreach (string s in test)
{
  Console.WriteLine(s);
}

Ответ 3

Вы можете просто использовать String.ToCharArray(), а затем обрабатывать каждый char как строку в коде.

Вот пример:

    foreach (char c in s.ToCharArray())
        Debug.Log("one character ... " +c);

Ответ 4

Попробуйте следующее:

var charArray = "this is a test".ToCharArray().Select(c=>c.ToString());

Ответ 5

Простой!!
одна строка:

 var res = test.Select(x => new string(x, 1)).ToArray();

Ответ 6

Скорее всего, вы ищете метод ToCharArray(). Однако вам нужно будет сделать немного больше работы, если требуется string[], как вы отметили в своем сообщении.

    string str = "this is a test.";
    char[] charArray = str.ToCharArray();
    string[] strArray = str.Select(x => x.ToString()).ToArray();

Изменить: Если вы беспокоитесь о краткости преобразования, я предлагаю вам сделать это в методе расширения.

public static class StringExtensions
{
    public static string[] ToStringArray(this string s)
    {
        if (string.IsNullOrEmpty(s))
            return null;

        return s.Select(x => x.ToString()).ToArray();
    }
} 

Ответ 7

Преобразуйте сообщение в массив символов, затем используйте цикл for, чтобы изменить его на строку

string message = "This Is A Test";
string[] result = new string[message.Length];
char[] temp = new char[message.Length];

temp = message.ToCharArray();

for (int i = 0; i < message.Length - 1; i++)
{
     result[i] = Convert.ToString(temp[i]);
}