文字列の最初の10文字を無視する方法は?
入力:
str = "hello world!";
出力:
d!
文字列の最初の10文字を無視する方法は?
入力:
str = "hello world!";
出力:
d!
回答:
str = "hello world!";
str.Substring(10, str.Length-10)
長さチェックを実行する必要があります。そうしないと、エラーがスローされます
str = str.Remove(0,10);
最初の10文字を削除します
または
str = str.Substring(10);
11文字目から文字列の終わりまでの部分文字列を作成します。
あなたの目的のために、それらは同じように動作するはずです。
Substring
には2つのオーバーロードメソッドがあります。
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
したがって、このシナリオでは、以下のような最初の方法を使用できます。
var str = "hello world!";
str = str.Substring(10);
出力は次のとおりです。
d!
その長さをチェックすることによって防御的コーディングを適用する場合。
サブストリングメソッドを使用します。
string s = "hello world";
s=s.Substring(10, s.Length-10);
開始するインデックスである単一のパラメーターを取るメソッドSubstringメソッドを使用できます。
以下の私のコードでは、長さが目的の開始インデックスより短く、長さがゼロの場合を扱います。
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
ために:
var str = "hello world!";
最初の10文字を含まない結果の文字列を取得するには、文字列の長さが10以下の場合は空の文字列を使用します。
var result = str.Length <= 10 ? "" : str.Substring(10);
または
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
最初のバリアントは、1つのメソッドパラメータしか必要としないため、推奨されます。
を呼び出すとSubString()
、新しい文字列が割り当てられます。最適なパフォーマンスを得るには、余分な割り当てを避ける必要があります。C# 7.2
あなたから始めて、スパンを利用することができますパターン。
をターゲティングする.NET Framework
場合は、System.Memory NuGet
パッケージを含めます。以下のため.NET Core
のプロジェクトこれは、箱から出して動作します。
static void Main(string[] args)
{
var str = "hello world!";
var span = str.AsSpan(10); // No allocation!
// Outputs: d!
foreach (var c in span)
{
Console.Write(c);
}
Console.WriteLine();
}