同様にstring.Joinとstring.Concatの違いは何ですかstring.Equalsとstring.Compareの違いは何ですか
それぞれの例をいくつか示してください。私はすでに検索しましたが、わかりませんでした。
前もって感謝します。
同様にstring.Joinとstring.Concatの違いは何ですかstring.Equalsとstring.Compareの違いは何ですか
それぞれの例をいくつか示してください。私はすでに検索しましたが、わかりませんでした。
前もって感謝します。
これら 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 を意味します (逆も同様です)。逆)。
ただし、これは重要なことですが、すべてのクラスがそうである必要はありません。これは文字列用ですが、他のクラスの異なる自然順序を禁止するルールはありません。
文字列を結合するプログラム【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
.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 クラスを使用することを推奨しています。