字符串比较

iceMung 2013-05-02 11:51:18
字符串是由N个“***|”组成

例如:
A:“***|***|***|”
B:“***|ABC|***|”
如何判断字符串A和字符串B除红字以外部分相等?

PS:字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定
...全文
223 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-05-02
  • 打赏
  • 举报
回复
if (a.Where(x => x == '*').Count() == b.Where(x => x == '*').Count()) ...
默冉66 2013-05-02
  • 打赏
  • 举报
回复
用字符串的Replace函數,可解決你的問題。 例: string string1, string2, string3, string4; string1 = "hello world 123"; string2 = "hello china 456"; string3 = "world"; string4 = "china"; if (string1.Replace(string3, "") == string2.Replace(string4, "")){ } else{ }
please_call_me_J 2013-05-02
  • 打赏
  • 举报
回复
引用 3 楼 freednc 的回复:
字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定 截成数组 对比吧,估计有点慢
利用对比的算法,我觉得有点暴力。。。。 不过说实话,在下没有看透彻楼主的具体情况
iceMung 2013-05-02
  • 打赏
  • 举报
回复
引用 3 楼 freednc 的回复:
字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定 截成数组 对比吧,估计有点慢
恩,就是因为判断次数会有很多,所以就不考虑用数组了。
please_call_me_J 2013-05-02
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
吧中间替换成空,然后比较
up++ 对于写代码来讲,楼上版主的方法最方便
梨花树下思考 2013-05-02
  • 打赏
  • 举报
回复
字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定 截成数组 对比吧,估计有点慢
iceMung 2013-05-02
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
吧中间替换成空,然后比较
请教版主,如何把A字符串对应部分也换成空?因为红色部分的长度也是不定的,所以不太容易Replace。
bdmh 2013-05-02
  • 打赏
  • 举报
回复
吧中间替换成空,然后比较
瑞卡哥哥 2013-05-02
  • 打赏
  • 举报
回复
你可以先换成数组,把要求的丢掉,再组装成字符串
iceMung 2013-05-02
  • 打赏
  • 举报
回复
结贴,换其他方法解决了,谢谢大家。
please_call_me_J 2013-05-02
  • 打赏
  • 举报
回复
引用 9 楼 iceMung 的回复:
[quote=引用 6 楼 juyangjia 的回复:] [quote=引用 3 楼 freednc 的回复:] 字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定 截成数组 对比吧,估计有点慢
利用对比的算法,我觉得有点暴力。。。。 不过说实话,在下没有看透彻楼主的具体情况[/quote] 楼主的具体情况就是类似下图这样,比如红框部分是已处理完的数据,然后对其进行合计操作,这个行转列是动态定义的,可以是N层,合计的项目也可以是动态定义的,可以对任意一层进行合计,图中是一个比较简单的一种情况。 整个过程都是对DataTable进行操作,多层行转列的列名暂时用N个“***|”进行保存,例如“仓库1|台式机|数量|”,“仓库1|合计|数量|”,现在稍微明白点了吗?[/quote] 明白你的意思了,是不是动态字段?那么你要的做什么效果出来?
夜轻风 2013-05-02
  • 打赏
  • 举报
回复
            string str1 = "aaa|bbb|ccc|";
            string str2 = "aaa|asd|ccc|";

            string[] t1 = str1.Split('|');
            string[] t2 = str2.Split('|');

            str1 = str1.Replace(t1[1],"");
            str2 = str2.Replace(t2[1],"");

            if (str1 == str2)
            {
                Console.WriteLine("True");
            }
            else 
            {
                Console.WriteLine("False");
            }
iceMung 2013-05-02
  • 打赏
  • 举报
回复
引用 8 楼 caozhy 的回复:
if (a.Where(x => x == '*').Count() == b.Where(x => x == '*').Count()) ...
...版主别闹,不是文字游戏
iceMung 2013-05-02
  • 打赏
  • 举报
回复
引用 6 楼 juyangjia 的回复:
[quote=引用 3 楼 freednc 的回复:]
字符串是由N个“***|”组成,ABC(只是例子,不是真的ABC)出现的位置不定

截成数组 对比吧,估计有点慢


利用对比的算法,我觉得有点暴力。。。。
不过说实话,在下没有看透彻楼主的具体情况[/quote]

楼主的具体情况就是类似下图这样,比如红框部分是已处理完的数据,然后对其进行合计操作,这个行转列是动态定义的,可以是N层,合计的项目也可以是动态定义的,可以对任意一层进行合计,图中是一个比较简单的一种情况。

整个过程都是对DataTable进行操作,多层行转列的列名暂时用N个“***|”进行保存,例如“仓库1|台式机|数量|”,“仓库1|合计|数量|”,现在稍微明白点了吗?

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧