文字列の最初の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文字目から文字列の末尾までの部分文字列を作成します。
あなたの目的のために、それらは同じように動作するはずです。
他の人が指摘したように、部分文字列はおそらくあなたが望むものです。しかし、ミックスに別のオプションを追加するだけです...
string result = string.Join(string.Empty, str.Skip(10));
これの長さをチェックする必要さえありません! :) 10文字未満の場合、空の文字列を取得します。
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!
その長さをチェックすることにより、防御コーディングを適用できる場合。
Substring
には、startIndexというパラメーターがあります。開始するインデックスに従って設定します。
以下の行を使用してCharを削除できます。
:-最初の文字列に削除するのに十分な文字があることを確認する
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
ために:
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 メソッドを使用できます。このメソッドは、単一のパラメーター(開始インデックス)を受け取ります。
以下の私のコードでは、長さが希望の開始インデックスよりも短く、長さがゼロの場合を扱います。
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
サブストリング方式を使用します。
string s = "hello world";
s=s.Substring(10, s.Length-10);
Substring
メソッドに長さを指定する必要はありません。したがって:
string s = hello world;
string p = s.Substring(3);
p
は次のようになります。
「lo world」。
ArgumentOutOfRangeException
がゼロ未満またはこのインスタンスの長さより大きい場合、対応する必要がある唯一の例外はstartIndex
です。