比较两个字符串的内容

sandynet 2008-04-17 10:31:43
字符串 TemplateStr="'aaa','bbb','ccc','ddd'"
字符串 CurrentStr="'ggg','ccc','ttt','ddd'"

两个字符串比较。TemplateStr作为比较的依据。凡是CurrentStr中有TemplateStr里相同的字符(用单引号里面的字符去比较)就返回true

请问应该如何实现呢?
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandynet 2008-04-17
  • 打赏
  • 举报
回复
TO 5楼的virusplayer,两个字符串长度全都是不固定的,也不会一样长。

谢谢各位,3楼的shinaterry的方法比较简单可行,已经实现。
jx火狐 2008-04-17
  • 打赏
  • 举报
回复
5楼正解,
但用foreach更好些...
lwghost 2008-04-17
  • 打赏
  • 举报
回复
以一数组为基,再循环读取另一数组,再用Array.BinarySearch()方法得到返回要求!以你给的为例子>>
for (int i = 0; i < CurrentStr[4].Length; tm++)
{
if (Array.BinarySearch(TemplateStr, CurrentStr[i]) < 0)
{
return true;
}
}
virusswb 2008-04-17
  • 打赏
  • 举报
回复
把两个字符串都分割了,长度一样可以一层循环比较完成
不一样的话,要两层循环才可以
static void Main(string[] args)
{
string TemplateStr = "'aaa','bbb','ccc','ddd'";
string CurrentStr = "'ggg','ccc','ttt','ddd'";
string[] temp = TemplateStr.Split(new char[] { ',' });
string[] current = CurrentStr.Split(new char[] { ',' });

for (int i = 0; i < temp.Length; i++)
{
for (int j = 0; j < current.Length; j++)
{
if(temp[i].Equals(current[j]))
Console.WriteLine("ok");
}
}
Console.ReadLine();
}
xyj200588 2008-04-17
  • 打赏
  • 举报
回复
我的比较方法是把这两个字符串分别以逗号为分隔符转为数组,然后在比较。
shinaterry 2008-04-17
  • 打赏
  • 举报
回复
不好意思! 理解错误! 修正如下:

//自行优化..

foreach (string var in CurrentStr.Split(','))
{
if (TemplateStr.IndexOf(var) != -1)
{
return true;
}
}

return false;
zhgroup 2008-04-17
  • 打赏
  • 举报
回复
用String.Split以","分割成字符串数组,然后再比较
shinaterry 2008-04-17
  • 打赏
  • 举报
回复
return (TemplateStr == CurrentStr);

110,539

社区成员

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

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

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