1. ホーム
  2. c#

[解決済み】文字列からすべての空白を削除する効率的な方法?

2022-03-24 17:45:10

質問

REST APIを呼び出して、XMLレスポンスを受信しています。それはワークスペース名のリストを返し、私は迅速な IsExistingWorkspace() メソッドを使用します。すべてのワークスペースは空白のない連続した文字で構成されているので、特定のワークスペースがリストにあるかどうかを調べる最も簡単な方法は、すべての空白を削除して(改行を含む)これを行うことだと思います(XMLはWebリクエストから受け取った文字列です)。

XML.Contains("<name>" + workspaceName + "</name>");

大文字と小文字が区別されるのは知っていて、それに頼っている。ただ、文字列の中の空白を効率的に削除する方法が必要なんだ。RegExとLINQでできることは知っているが、他のアイデアも歓迎だ。私はほとんど速度について心配しているだけです。

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

正規表現を使いたくないとのことですが、私が知る限りではこれが一番早い方法です。

Regex.Replace(XML, @"\s+", "");

コメントで @hypehuman を引用していますが、もしこれを複数回行う予定があるなら、Regex のインスタンスを作成して保存してください。これにより、毎回構築するオーバーヘッドを節約することができます。

private static readonly Regex sWhitespace = new Regex(@"\s+");
public static string ReplaceWhitespace(string input, string replacement) 
{
    return sWhitespace.Replace(input, replacement);
}