字符串到数组的转换
当这个有效时:
string s4 = "H e l l o";
string[] arr = s4.Split(new char[] { ' ' });
foreach (string c in arr)
{
System.Console.Write(c);
}
为什么这是无效的
string s4 = "H e l l o";
char[] arr = s4.Split(new char[] { ' ' });
foreach (char c in arr)
{
System.Console.Write(c);
}
不能 我们用 Splitter 方法构建一个字符数组。
When this is valid:
string s4 = "H e l l o";
string[] arr = s4.Split(new char[] { ' ' });
foreach (string c in arr)
{
System.Console.Write(c);
}
Why This is invalid
string s4 = "H e l l o";
char[] arr = s4.Split(new char[] { ' ' });
foreach (char c in arr)
{
System.Console.Write(c);
}
Cant We build a Character Array with Splitter method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你这样说的目的
是告诉编译器比他知道的更多,分割后的部分将是每个字符长,并且你想将它们转换为 char。为什么不明确地告诉他,例如说
char[] arr = s4.Split(new char[] { ' ' }).Select(c => c[0]).ToArray();
Your intention by saying
is to tell the compiler much more than he knows, that the parts after the split will be each one character long and you want to convert them to char. Why don't you tell him explicitly, e.g. by saying
char[] arr = s4.Split(new char[] { ' ' }).Select(c => c[0]).ToArray();
首先,
char
不是string
的子类型。因此,因为 string.Split 返回一个字符串数组,所以它不是一个 char 数组,即使每个字符串的长度都是 1。char
is not a subtype ofstring
, to start with. So, because string.Split returns an array of strings, it's not an array of char, even if every string is of length 1.Split 方法返回 string[],而不是 char[]。即使每个字符串的长度为 1。
如果您愿意,也可以使用 String.toCharArray()。
Split method returns string[], not char[]. even if the length of each string is 1.
You can use String.toCharArray() if you'd like.
因为
Split
返回string[]
而不是char[]
请参阅 Thomas 的回答(使用 linq)
谢谢
Because
Split
returnsstring[]
and notchar[]
Refer to Thomas' answer (using linq)
Thanks