2012-03-23 262 views
32

我想车削"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();

编辑:澄清,我不想要一个字符数组,理想情况下我想要一个字符串数组。除了我会认为有一个更简单的方法之外,我并没有发现上述代码有什么问题。

+0

你真的想每个字符的字符串? – 2012-03-23 21:55:25

+3

你的代码有什么问题var test =“this is a test”.Select(x => x.ToString())。ToArray();'? – 2012-03-23 21:58:58

回答

72

我相信这是你在找什么:

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

-1我想他想要一个字符串数组。 – 2012-03-23 22:07:26

+1

虽然这不是我所要求的,但我想我已经开始意识到,我所问的确实没有理由。 – mowwwalker 2012-03-23 22:14:15

+0

@Walkerneo你真的想要什么?一个-1? – 2012-03-23 22:16:40

3

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

下面是一个例子:

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

字符串在C#中已经有一个字符索引

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); 
} 
+0

+1是为了达到我发布我的答案时错过的一个明显观点。咄。为什么我没有想到这个? – David 2012-03-23 21:56:10

+1

他们有一个'char'索引器,他们实现'IEnumerable ',但它们实际上不是'char []'或IList '。 – LukeH 2012-03-23 22:00:52

+1

为真。它们是字符串类型的,但重点是开发人员不需要使用ToCharArray()或任何类型的转换来string []来访问单个字符。 – 2012-03-23 22:11:54

1

试试这个:

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

这已经是我发布的代码所做的。 – mowwwalker 2012-03-23 22:09:57

0

最有可能你正在寻找的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(); 
    } 
} 
+1

查看OP的问题。他已经这样做了(用较短的代码) – 2012-03-23 22:13:26

2

简单!!
一行:

var res = test.Select(x => new string(x, 1)).ToArray(); 
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]); 
}