1. ホーム
  2. c#

.NETで文字列の末尾から文字列をトリムする - なぜこれが見つからないのですか?

2023-09-17 21:48:39

質問

Trim()、TrimStart()、TrimEnd()関数が文字列を入力として受け取らないことに、いつもイライラしています。あなたは文字列でEndsWith()を呼び出し、それが別の文字列で終わるかどうかを見つけるが、その後、最後からそれを削除したい場合は、それを行うためにサブストリングハックを行う必要があります(またはRemove()を呼び出し、それが唯一の例であることを祈ります...)。

なぜこの基本的な関数が.NETにないのでしょうか?そして第二に、これを実装する簡単な方法の推奨事項があれば教えてください (できれば正規表現ルートではなく...)。

どのように解決するのですか?

TrimEnd() (そして他のトリムメソッド) はトリムする文字を受け付けますが、文字列は受け付けません。もし本当に文字列全体をトリミングできるバージョンが必要なら、拡張メソッドを作成することができます。 例えば...

public static string TrimEnd(this string input, string suffixToRemove, StringComparison comparisonType = StringComparison.CurrentCulture)
{
    if (suffixToRemove != null && input.EndsWith(suffixToRemove, comparisonType)) 
    {
        return input.Substring(0, input.Length - suffixToRemove.Length);
    }

    return input;
}

これは内蔵のメソッドと同じように呼び出すことができます。