私はこのような文字列を持っている:文字列オフ最後の3つの文字をトリミングする簡単な方法があります
var a = "abcdefg";
var b = "xxxxxxxx";
文字列は常に長い5文字以上です。
最後の3文字を切り捨てる必要があります。私はC#でこれを行うことができる簡単な方法はありますか?
私はこのような文字列を持っている:文字列オフ最後の3つの文字をトリミングする簡単な方法があります
var a = "abcdefg";
var b = "xxxxxxxx";
文字列は常に長い5文字以上です。
最後の3文字を切り捨てる必要があります。私はC#でこれを行うことができる簡単な方法はありますか?
些細なケースで、あなただけの文字列から最後の3つの文字を削除するには
result = s.Substring(0, s.Length-3);
を使用することができます。
それともジェイソンはRemove
が代替である提案として:
result = s.Remove(s.Length-3)
残念ながら、Unicode文字列のためにいくつかの問題があることができます。
char
Sで構成することができます文字列のエンコーディングはUTF-16です(代理ペアを参照)。これは、基本平面の外側の文字、つまりコードポイント> 2^16の文字に対してのみ発生します。これは、中国語をサポートしたい場合に適しています。ä
は、a
と書かれ、続いて¨
となる。string newString = oldString.Substring(0, oldString.Length - 4);
のいずれか何をしたいあなたはString.Remove(Int32)
たくていない可能性がありますが、指定から始まるこの文字列からすべての文字を削除します の位置と最後の位置まで続きます。
あなたはdruttkaの答えの線に沿って、検証を実行したい場合は、私は、拡張メソッド
public static class MyStringExtensions
{
public static string SafeRemove(this string s, int numCharactersToRemove)
{
if (numCharactersToRemove > s.Length)
{
throw new ArgumentException("numCharactersToRemove");
}
// other validation here
return s.Remove(s.Length - numCharactersToRemove);
}
}
var s = "123456";
var r = s.SafeRemove(3); //r = "123"
var t = s.SafeRemove(7); //throws ArgumentException
+1サブストリングはそれを行いますが、そのジョブに適切なツールを使用しないのはなぜですか? – Bazzz
文字列は不変なので、元の文字列は変更されず、変更された文字列が返されることに注意してください。 – CodesInChaos
を作成することをお勧めしますが、実際には、最後の3つの文字をトリミングする必要がある場合は、行うことができますこの
string a = "abcdefg";
if (a.Length > 3)
{
a = a.Substring(0, a.Length-3);
}
else
{
a = String.Empty;
}
これはどちらですか?四、三?あなたはタイトルと質問のボディが異なっています。 –