1. ホーム
  2. c#

[解決済み] 文字列から最後の文字を切り取る

2022-04-21 22:48:45

質問

次のような文字列があります。

"Hello! world!" 

トリムやリムーブをして、!!! off worldは取りたいが、not off Helloは取りたい。

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

"Hello! world!".TrimEnd('!');

もっと読む

EDITです。

この種の質問で気づいたのは、多くの人が与えられた文字列の最後の1文字を削除することを提案していることです。しかし、これはTrimメソッドの定義を満たしていません。

<ブロッククオート

トリム - すべての出現回数を削除します。 から空白文字を削除します。 このインスタンスの最初と最後を指定します。

MSDN-Trim

この定義では、文字列から最後の文字だけを削除することは悪い解決策です。

つまり、文字列から最後の文字を削除したい場合は、次のようにします。

拡張メソッドの例です。

public static class MyExtensions
{
  public static string TrimLastCharacter(this String str)
  {
     if(String.IsNullOrEmpty(str)){
        return str;
     } else {
        return str.TrimEnd(str[str.Length - 1]);
     }
  }
}

備考 同じ値の文字、つまり(!!!)をすべて削除したい場合、上記の方法は文字列の最後から'!'をすべて削除します。 しかし、最後の文字だけを削除したい場合は、これを使用する必要があります。

else { return str.Remove(str.Length - 1); }