2016-01-21 208 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。更新。 –