2

spaces文字列内のそれ以上 を c# 経由で変換したいですか?

文字列が

       My name  is this.

出力は次のようになります

   My name  is this.
4

4 に答える 4

18

「通常の」スペースを「非改行スペース」UTF-8 エンティティに置き換えます。

string outputString = "Input text".Replace(" ", "\u00A0");
于 2015-08-06T11:40:36.330 に答える
6

複数のスペース単一の改行なしスペースに変換する必要がある場合は、RegEx を試してください。

string convertedText =
    new Regex("[ ]{2,}").Replace(textToConvert, " ");

例:

私の名前はこれです
  ^ ^^^ ^

次のように変更されます。

My Name  is this

更新
余分なスペースを保持する必要がある場合 (および複数のスペースのみを nbsp に置き換える必要がある場合) は、次の正規表現を使用できます。

string convertedText =
    new Regex(" (?= )|(?<= ) ").Replace(textToConvert, "&nbsp;");

例:

私の名前はこれです
  ^ ^^^ ^

次のように変更されます。

My Name&nbsp;&nbsp;&nbsp;is this

2 番目のケースでは、代替として、正規表現をまったく使用しない (単にループする) こともできますが、同じ正規表現を頻繁に使用する必要がある場合は高速になるはずです。

于 2012-07-16T12:25:24.717 に答える
1

以下の行を修正すると機能しません

Server.HtmlEncode を使用してください。

コードでそれを行う必要があります

string s = " ";
if(s == " ")
{
 s = "&nbsp;"
}

Or use "My name  is this".Replace(" ", "&nbsp;");
于 2012-07-16T12:22:41.990 に答える
1

これを試して

string myString = "My name  is this".Replace("  ", " &nbsp;");
于 2012-07-16T12:25:32.347 に答える