将字符串拆分为单个字符的字符串数组

时间:2012-03-23 21:52:55

标签: c# string split

我想要像将"this is a test"转换为

一样简单
new string[] {"t","h","i","s"," ","i","s"," ","a"," ","t","e","s","t"}

我是否真的需要做像

这样的事情
test = "this is a test".Select(x => x.ToString()).ToArray();

编辑:为了澄清,我不想要一个char数组,理想情况下我想要一个字符串数组。我没有看到上述代码有任何问题,只是因为我认为有一种更简单的方法。

8 个答案:

答案 0 :(得分:96)

我相信这是你正在寻找的:

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

答案 1 :(得分:31)

C#中的字符串已经有一个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 []数组,这里是你如何在c#:

中的每个字符处拆分一个字符串
string[] test = Regex.Split("this is a test", string.Empty);

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

答案 2 :(得分:4)

简单!!
一行:

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

答案 3 :(得分:3)

您可以使用String.ToCharArray(),然后将每个字符视为代码中的字符串。

以下是一个例子:

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

答案 4 :(得分:2)

试试这个:

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

答案 5 :(得分:1)

您很可能正在寻找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();
    }
} 

答案 6 :(得分:0)

将消息转换为字符数组,然后使用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]);
}

答案 7 :(得分:0)

0x36

结果:

string input = "this is a test";
string[] afterSplit = input.Split();

foreach (var word in afterSplit)
    Console.WriteLine(word);