-1

我有以下字符串=

"00101010"

我需要以下数组/列表:

var.ElementAt(0) = "0"
var.ElementAt(1) = "0"
var.ElementAt(2) = "1"
var.ElementAt(3) = "0"
var.ElementAt(4) = "1"
var.ElementAt(5) = "0"
var.ElementAt(6) = "1"
var.ElementAt(7) = "0"

如果我尝试 string.split('') 编译器会抱怨空字符文字。

谢谢你的帮助。

4

5 回答 5

6

您可以使用 Linq:

var chars = "00101010".Select(c => c.ToString()).ToArray();
于 2012-10-31T16:49:39.903 回答
6

这应该这样做:

string mys = "hello";
char[] thechars = mys.ToCharArray();
于 2012-10-31T16:50:20.580 回答
4

使用ToCharArray。但更相关的问题是您需要对结果做什么,因为 string 已经实现了IEnumerable<char>允许您对字符串中的字符进行迭代和做任何您需要的事情。

于 2012-10-31T16:50:51.597 回答
2

如果要获取字符串中的特定字符,只需索引字符串即可;无需将其转换为任何内容的数组:

var s = "0123";
var c = s[0]; // -> '0'

如果您真的需要字符串而不是字符,那么蒂姆的答案将起作用。

于 2012-10-31T16:50:22.060 回答
0

有一个单行 reg-ex 解决方案返回 string[] 而不是 char[]:

    var arr = Regex.Split(s, "(?<=.)(?=.)");

如果有单行非 Linq 解决方案或更短的正确正则表达式,那会很有趣。

注意:我会在其他 reg-ex 答案下发布,但由于缺少 @ 字符串前缀,它似乎已被删除,并且仅限于拆分数字。

于 2012-10-31T17:33:29.960 回答