2012-03-23 320 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]); 
}