微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何将0和1的字符串转换为布尔数组

基本上,标题说明了我想做的事情.

我有一个如下的字符串.

1 0 1 0 1
0 0 0 0 0
1 0 0 0 1
0 0 0 0 0
1 0 1 0 1

我想将其转换为二维布尔数组(显然,0 – > false和1 – > true).我目前的方法删除非linebreak-whitespace,然后迭代字符串的行.

这使我将诸如10101之类的字符串转换为true,false,true,true的布尔数组.现在,我希望有预先存在的方法来进行这种转换 – 使用Java,我很确定它可以使用流API完成,但不幸的是,我还不熟悉C#.

因此,我的问题是:是否存在以紧凑方式进行此转换的现有方法?或者我是否必须手动迭代字符串并对每个字符进行== 0 / == 1比较?

解决方法

单弦

如果你有一个像“10101”这样的字符串,你可以使用LINQ将它转换为位数组.

string input = "10101";
bool[] flags = input.Select( c => c == '1' ).ToArray();

字符串数组

LINQ在二维数组中不能很好地工作,但它适用于锯齿状数组.如果bool [] []会这样做,这个解决方案应该有效:

string[] input = { "10101","01010" };

bool[][] flags = input.Select
(
    s => s.Select
    ( 
        c => c == '1'
    )
    .ToArray()
)
.ToArray();

原文地址:https://www.jb51.cc/csharp/99893.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐