-4

同様にstring.Joinとstring.Concatの違いは何ですかstring.Equalsとstring.Compareの違いは何ですか

それぞれの例をいくつか示してください。私はすでに検索しましたが、わかりませんでした。

前もって感謝します。

4

4 に答える 4

0

Join複数の文字列を区切り文字で結合します。これは、リストがあり、各要素の間に区切り文字(コンマなど)があるようにリストをフォーマットする場合に最もよく使用されます。Concatそれらを次々に追加するだけです。ある意味で、Joinセパレータが空の場合は。と同等Concatです。

Equals2つの文字列が等しいと見なされるかどうかCompareを決定します。これは、2つの文字列間のソート順を決定するためのものです。

正直なところ、これはすべてドキュメントで非常によく説明されています。

于 2012-09-26T11:37:28.670 に答える
0

これら 2 つの方法はかなり関連しています。まだ実行されていませんが、equals は compareTo を使用して実装できた可能性があります。

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));
    }
}

出力 - 1、2、3 1、2、3

連結:

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 に答える