-4

What is the differ between string.Join & string.Concat similarly what is the diff between string.Equals & string.Compare

Show me with some example for each. I already searched but didn't understand.

Thanks in Advance.

4

4 回答 4

0

这两种方法非常相关。虽然尚未完成,但可以使用 compareTo 实现 equals:

public boolean equals(Object o)   
{   
    if (this == anObject)   
    {   
        return true;   
    }   
    if (o instanceof String)   
    {   
        String s = (String)o;   
        return compareTo(s) == 0;   
    }   
    return false;   
}  

此外, s1.equals(s2) == true 意味着 s1.compareTo(s2) == 0 (反之亦然),而 s1.equals(s2) == false 意味着 s1.compareTo(s2) != 0 (反之亦然)反之亦然)。

但是,这很重要,并非所有课程都必须如此。它适用于字符串,但没有规则禁止其他类使用不同的自然顺序。

于 2012-09-26T11:53:49.043 回答
0

连接字符串的程序 [C#]

使用系统;

class Program
{
    static void Main()
    {
    string[] arr = { "one", "two", "three" };

    // "string" can be lowercase, or...
    Console.WriteLine(string.Join(",", arr));

    // ... "String" can be uppercase:
    Console.WriteLine(String.Join(",", arr));
    }
}

输出 - 一、二、三 一、二、三

连接:

using System;
class Program
{
    static void Main()
    {
    // 1.
    // New string called s1.
    string s1 = "string2";

    // 2.
    // Add another string to the start.
    string s2 = "string1" + s1;

    // 3.
    // Write to console.
    Console.WriteLine(s2);
    }
}

输出 - string1string2

于 2012-09-26T11:46:42.920 回答
0

在 .NET 4.0 中,String.Join() 在内部使用 StringBuilder 类,因此效率更高。而 String.Concat() 使用“+”使用 String 的基本连接,这当然不是一种有效的方法,因为 String 是不可变的。

我比较了 .NET 2.0 框架中的 String.Join() ,它的实现不同(它没有在 .NET 2.0 中使用 StringBuilder)。但是在 .NET 4.0 中,String.Join() 在内部使用 StringBuilder(),因此它就像 StringBuilder() 之上的简单包装器,用于字符串连接。

Microsoft 甚至建议对任何字符串连接使用 StringBuilder 类。

于 2012-09-26T11:43:03.050 回答
0

Join将多个字符串与中间的分隔符组合在一起;如果您有一个列表并希望以每个元素之间有分隔符(例如逗号)的方式对其进行格式化,这最常使用。Concat只是一个接一个地附加它们。在某种程度上,Join带空分隔符相当于Concat.

Equals确定两个字符串是否相等,Compare用于确定两个字符串之间的排序顺序。

不过,老实说,这一切都在文档中得到了很好的解释。

于 2012-09-26T11:37:28.670 回答