【发布时间】:2016-01-21 10:36:40
【问题描述】:
我正在尝试拆分用户输入的字符串。例如: 他输入“你好”。所以我想把它分成一个数组:["H","E","L",...]。那么如何使用这个 .split() 函数呢?
如何将其保存到数组中?
谢谢你们。
【问题讨论】:
-
试试这个链接应该会有帮助stackoverflow.com/questions/1485237/…
我正在尝试拆分用户输入的字符串。例如: 他输入“你好”。所以我想把它分成一个数组:["H","E","L",...]。那么如何使用这个 .split() 函数呢?
如何将其保存到数组中?
谢谢你们。
【问题讨论】:
如果你想要一个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();
【讨论】:
string myString = "hello" 那么char e = myString[1] 完全有效?
.ToCharArray()调用是多余的。
如果您想要string[] 作为您想要的结果["H","E","L",... 建议:
string input = "Hello";
char[] chars = input.ToCharArray();
string[] asStringArray = Array.ConvertAll(chars, char.ToString);
如果字符串很大,String.ToCharArray 比Enumerable.ToArray 好,因为ToCharArray 事先知道字符串的大小。所以它可以用正确的大小初始化数组,而不需要一次又一次地调整它的大小。
这同样适用于知道数组大小的Array.ConvertAll。
【讨论】:
Enumerable.ToArray 填充一个Buffer,检查给定序列是否实现ICollection<T>,如果是,则使用它的Count,所以不会有太多(如果任何)使用String.ToCharArray 优于Enumerable.ToArray 的优势。 ---- 罢工,string 没有实现ICollection<T>,所以你是绝对正确的。
string[] asStringArray = input.Select(c => c.ToString()).ToArray();
char[] myArray = myString.ToArray();
【讨论】:
myString[0]?好久没碰了。
String.ToCharArray 比Enumerable.ToArray 更好,因为它可以预先以正确的大小初始化数组。
string[] 而不是 char[]