C#中比较忽略顺序两字符串

hu2353015 2010-04-29 11:44:21
如题,有没简单的实现办法,有没可能不用循环就搞定的
...全文
202 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
marxTen 2010-04-29
  • 打赏
  • 举报
回复
不排序,怎么比?
Array.Sort(c1);
也是排序了的~
想法就不对~
Peter200694013 2010-04-29
  • 打赏
  • 举报
回复
给你写个方法:

static Boolean CompareContent(String s1, String s2)
{
if (s1.Length != s2.Length)
return false;

char[] c1 = s1.ToCharArray();
char[] c2 = s2.ToCharArray();
Array.Sort(c1);
Array.Sort(c2);

bool flag = true;
for (Int32 i = 0; i < c1.Length; i++)
{
if (c1[i] != c2[i])
{
flag = false;
break;
}
}

return flag;
}

static void Main(string[] args)
{
String s1 = "abcd";
String s2 = "bcda";

Console.WriteLine(CompareContent(s1,s2));
}
tangzhiping121603 2010-04-29
  • 打赏
  • 举报
回复
肯定要遍历的
lexfu 2010-04-29
  • 打赏
  • 举报
回复
至少得遍历个一两次吧
hu2353015 2010-04-29
  • 打赏
  • 举报
回复
对啊 忽略顺序 只要比较字符串内容
hu2353015 2010-04-29
  • 打赏
  • 举报
回复
对啊 忽略顺序 只要比较内容
Baesky 2010-04-29
  • 打赏
  • 举报
回复
你的啥意思是
str1 = "abcd";
str2 = "bacd";
只要字符相等 顺序不同就算相等?
草帽精神 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 peter200694013 的回复:]
给你写个方法:

C# code

static Boolean CompareContent(String s1, String s2)
{
if (s1.Length != s2.Length)
return false;

char[] c1 = s1.ToCha……
[/Quote]
hu2353015 2010-04-29
  • 打赏
  • 举报
回复
非常感谢,对我帮助很大,不过不好意思各,评论搞错了,估计大家也不会在意这点评价吧
uha 2010-04-29
  • 打赏
  • 举报
回复
分两次比较,先直接比较,然后再把其中一个串翻转一下再比较。

public string StrReverse(string raw)
{
string str = "";
for(int i=raw.Length-1;i>-1;i--){
str += Convert.ToString(raw[i]);
}
return str;
}
q107770540 2010-04-29
  • 打赏
  • 举报
回复
不遍历,如何得知二者相等?
lpingz 2010-04-29
  • 打赏
  • 举报
回复
一定不循环的话就这么做。

string s1 = "abcd";
string s2 = "bcda";
char[] c1 = s1.ToCharArray();
char[] c2 = s2.ToCharArray();
Array.Sort(c1);
Array.Sort(c2);

string t1 = new String(c1);
string t2 = new String(c2);

return t1 == t2;
idot 2010-04-29
  • 打赏
  • 举报
回复
给你一个效率低下的方法:把两个字符串split成两个集合或数组,然后求交集,再比较交集的个数与那两个集合或数组的个数是否相等。
deknight 2010-04-29
  • 打赏
  • 举报
回复
关注 mark
jhbice 2010-04-29
  • 打赏
  • 举报
回复
怎么说也要 循环1次么
灵雨飘零 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
string str="";
char[] chars=str.ToCharArray();
Array.Sort排序
[/Quote]学习学习
wuyq11 2010-04-29
  • 打赏
  • 举报
回复
string str="";
char[] chars=str.ToCharArray();
Array.Sort排序
redlei 2010-04-29
  • 打赏
  • 举报
回复
方法一:用排序法,排序,然后进行比较。
方法二:用统计法,统计处这个字符串有多少个什么。然后进行比较。

111,120

社区成员

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

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

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