1. ホーム
  2. c#

[解決済み] C# TrimStart with string parameter

2023-06-27 13:26:33

質問

の String 拡張メソッドを探しています。 TrimStart()TrimEnd() で、文字列のパラメータを受け取ります。

自分でも作れますが、他の人がどうやるかにはいつも興味があります。

これはどうやったらできるのですか?

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

(完全に一致する)文字列の出現箇所をすべて切り詰めるには、次のような方法があります。

トリム開始

public static string TrimStart(this string target, string trimString)
{
    if (string.IsNullOrEmpty(trimString)) return target;

    string result = target;
    while (result.StartsWith(trimString))
    {
        result = result.Substring(trimString.Length);
    }

    return result;
}

トリムエンド

public static string TrimEnd(this string target, string trimString)
{
    if (string.IsNullOrEmpty(trimString)) return target;

    string result = target;
    while (result.EndsWith(trimString))
    {
        result = result.Substring(0, result.Length - trimString.Length);
    }

    return result;
}

trimCharsで指定した文字のうち、targetの先頭・末尾をトリミングする場合(例. "foobar'@"@';".TrimEnd(";@'")"foobar" ) を使うことができます。

トリムスタート

public static string TrimStart(this string target, string trimChars)
{
    return target.TrimStart(trimChars.ToCharArray());
}

トリムエンド

public static string TrimEnd(this string target, string trimChars)
{
    return target.TrimEnd(trimChars.ToCharArray());
}