【问题标题】:C# Split String - Split String into Array [duplicate]C#拆分字符串-将字符串拆分为数组[重复]
【发布时间】:2016-01-21 10:36:40
【问题描述】:

我正在尝试拆分用户输入的字符串。例如: 他输入“你好”。所以我想把它分成一个数组:["H","E","L",...]。那么如何使用这个 .split() 函数呢?

如何将其保存到数组中?

谢谢你们。

【问题讨论】:

标签: c# arrays split


【解决方案1】:

如果你想要一个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()调用是多余的。
  • @IvanStoev 对,谢谢。已更新。
【解决方案2】:

如果您想要string[] 作为您想要的结果["H","E","L",... 建议:

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

如果字符串很大,String.ToCharArrayEnumerable.ToArray 好,因为ToCharArray 事先知道字符串的大小。所以它可以用正确的大小初始化数组,而不需要一次又一次地调整它的大小。

这同样适用于知道数组大小的Array.ConvertAll

【讨论】:

  • 根据referencesourceEnumerable.ToArray 填充一个Buffer,检查给定序列是否实现ICollection<T>,如果是,则使用它的Count,所以不会有太多(如果任何)使用String.ToCharArray 优于Enumerable.ToArray 的优势。 ---- 罢工,string 没有实现ICollection<T>,所以你是绝对正确的。
  • 很高兴知道,因为我的方法是string[] asStringArray = input.Select(c => c.ToString()).ToArray();
【解决方案3】:
char[] myArray = myString.ToArray();

【讨论】:

  • 是否可以在c#中只做myString[0]?好久没碰了。
  • 是的,myString[0] 将返回该字符串的第一个字符。我猜你可以迭代字符串长度!
  • 我说的不是数组。只是随机询问它是否会引发错误。仅供参考。 :)
  • String.ToCharArrayEnumerable.ToArray 更好,因为它可以预先以正确的大小初始化数组。
  • 似乎 OP 要求 string[] 而不是 char[]
猜你喜欢
  • 2013-08-19
  • 1970-01-01
  • 2012-06-27
  • 2011-12-20
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多