C#:検出方法。 文字列で、その後にスペースを挿入する/ n文字の後にスペースを挿入する方法は?

c# string
C#:検出方法。 文字列で、その後にスペースを挿入する/ n文字の後にスペースを挿入する方法は?

「4600airportburlingame150anzablvd.burlingamecalifornia94010」のような長い文字列があるとします。 私のコードはこの文字列を壊しています。 これは珍しいことで、99%のエントリにはピリオドがありません。 文字列にスペースがあり、ここにスペースがない場合、ブラウザのCSSは折り返します。

  1. ピリオド `(”。 “)`を検出し、直後にスペースを挿入するにはどうすればよいですか
    it? 文字列の99%にはピリオドが含まれないことに注意してください。 コードは、ピリオドがあるかどうかを検出する必要があり、ピリオドがある場合は挿入を行い、そうでない場合は挿入を行います。

  2. 最大文字列長を決定する場合、どのようにスペースを挿入しますか
    長さ?

  0  1


ベストアンサー

すべてのドットの後にスペースを挿入するには:

var newString = oldString.Replace(".", ". ");

文字列の末尾にスペースまたはドットをすでに持っているドットを除くすべてのドットの後にスペースを挿入するには:

var newString = Regex.Replace(oldString, @"\.(?! |$)", ". ");

_n_文字ごとにスペースを挿入するには:

var newString = Regex.Replace(oldString, new string('.', n), m => m.Value + " ");

7


*編集:*投稿を編集しました。 これは、「。」がなくなるまでループします。あなたの文字列に。 存在しない場合は、スキップします。

String myText = "4600airportburlingame150anzablvd.burlingamecalifornia94010";

while(myText.Contains("."))
{
    int indexOfDot = myText.IndexOf(".");
    myText = myText.SubString(0,indexOfDot) + " " + myText.SubString(indexOfDot + 1);
}

2


単純な「String.Replace()」は、単一の期間にのみ関心がある場合は機能しますが、複数の期間がある場合はどうなりますか? または、すでに期間スペースがあるものとないもの…​ 「」を変更しますか。 「〜」。 “? これを関数にして、「修正」する文字列を渡します…​ この例では、複数の埋め込みピリオドを使用し、その後にスペースを入れないでください。 結果は、後続のスペースがないピリオドのみに追加される文字列です。

String myText = "4600airpo. rtburl.ingame150.  anzablvd.burlinga.  mecalif.ornia94010";
int Dot = 1, LastDot = 0, DotSpace = 0;
while (Dot > 0)
{
   Dot = myText.Substring( LastDot ).IndexOf( "." );
   if (Dot > 0)
   {
      DotSpace = myText.Substring(LastDot).IndexOf(". ");
      if (Dot != DotSpace)
         myText = myText.Substring(0, LastDot + Dot +1) + " "
                + myText.Substring(LastDot + Dot +1);

      LastDot += Dot +1;
   }
}

1


1については、 myStr = myStr.Replace("。 "、"を試してください。 ");。 これは、ピリオドが他のコンテキスト(小数点区切りなど)で使用されないことを前提としていることに注意してください。

2については、Pabucの答えを参照してください。

0


string.Replace("。 "、"を使用できます。 ")

String myText =" 4600airportburlingame150anzablvd.burlingamecalifornia94010 "; myText = myText.Replace( "。"、 "。 ");

-1


タイトルとURLをコピーしました