2016-01-21 254 views
-6

我想分割用戶加入的字符串。例如: 他鍵入「Hello」。所以我想把它分解成一個數組:[「H」,「E」,「L」,...]。那麼如何使用這個.split()函數呢?如何將其保存到數組中?C#拆分字符串 - 將字符串拆分爲數組

謝謝你們。

+6

嘗試此鏈接應該是有幫助http://stackoverflow.com/questions/1485237/split-string-in-c-sharp-without-delimiter-sort-of –

回答

3

如果你想有一個string[]爲你想要的結果["H","E","L",...提示:

string input = "Hello"; 
char[] chars = input.ToCharArray(); 
string[] asStringArray = Array.ConvertAll(chars, char.ToString); 

String.ToCharArrayEnumerable.ToArray更好,如果串大是因爲ToCharArray知道字符串的大小提前。所以它可以用正確的大小初始化數組,而無需一次又一次調整大小。

這同樣適用於知道數組大小的Array.ConvertAll

+0

根據[referencesource](http://referencesource.microsoft.com/#System.Core/System/ Linq/Enumerable.cs),'Enumerable.ToArray'填充一個'Buffer',用來檢查給定的序列是否實現'ICollection ',如果是的話則使用它的'Count',所以不會有太多(如果有的話)在'Enumerable.ToArray'上使用'String.ToCharArray'。 ----罷工那,'字符串'不執行'ICollection ',所以你是絕對正確的。 – Corak

+0

很高興知道,因爲我的方法本來是'string [] asStringArray = input.Select(c => c.ToString())。ToArray();' – Filburt

+0

非常感謝你:) –

3
char[] myArray = myString.ToArray(); 
+0

是否有可能在c#中執行'myString [0]'?長時間沒有觸及它。 – choz

+2

是的,myString [0]會返回該字符串的第一個字符。你可以迭代我猜的字符串長度! – PulseLab

+0

我不是在討論數組。只是隨意的問題是否會引發錯誤。 Tq FYI。 :) – choz

5

如果你想有一個char[]{'H', 'e', 'l', 'l', 'o'}你可以簡單地使用ToCharArray()

string s = "Hello"; 
char[] letters = s.ToCharArray(); 

如果你想有一個string[]{"H", "e", "l", "l", "o"}你可以做這樣的:

string s = "Hello"; 
string[] letters = s.Select(c => c.ToString()).ToArray(); 
+0

請問如果' string myString =「hello」'then char e = myString [1]'是完全有效的嗎? –

+0

在第二種情況下,'.ToCharArray()'調用是多餘的。 –

+0

@IvanStoev right,thx。更新。 –