C#中,怎么样判定“abc”“bca”是一样的?就是两个字符序列,不看他们的顺序,只要包含的字母相同即可?有没有这样的一个内置的函数,可以使“abc”中的字母按照字典顺序排序?

解决方案 »

  1.   

    逐个读取“abc”中的字符,然后看是否在后面的字符串中
      

  2.   

    void Main()
    {
    string str="bac";
    str=string.Join("",str.ToCharArray().OrderBy(s=>s).Select(s=>s.ToString()).ToArray());
    Console.WriteLine(str);//abc
    }
      

  3.   

                string binput = "bca" ;
                string ainput = "abc" ;
                string pattern = String.Contact(@"[",binput,"]+";
                if(Regex.Match(input, pattern).Success)
                Console.WriteLine("相等");
      

  4.   


            private bool compToString(string str1, string str2)
            {
                if (str1.Length!=str2.Length)
                {
                    return false;
                }
                else if (str1.Length==str2.Length)
                {
                    char[] chr1 = str1.ToCharArray();
                    char[] chr2 = str2.ToCharArray();                char[] result = chr1.Intersect(chr2).ToArray();
                    if (result.Count()==chr1.Count())
                    {
                        return true;
                    }
                }
                return false;
            }
      

  5.   

           查MSDN里字符串没有这个方法。
            可以利用List的排序方法。 
            public static string Sort(string source)
            {
                char[] mlist = source.ToCharArray();
                List<char> str = new List<char>(mlist);
                str.Sort();//这里可以自己实现排序,也可以使用默认的
                string strnew = new string(str.ToArray());
                return strnew;        }
      

  6.   

    楼主能够解释一下:s=>s).Select(s=>s.ToString()).ToArray());
    是什么意思? 谢谢
      

  7.   

    楼主,能否解释一下:string pattern = String.Contact(@"[",binput,"]+";
    规则表达式,谢谢
      

  8.   

    哪用那么麻烦...直接求差集即可...
    "abc".Except("bca").Count() == 0