假设我有一个像4600airportburlingame150anzablvd.burlingamecalifornia94010
这样的长字符串。我的代码打破了这个字符串。这是不寻常的,99%的参赛作品没有期限。如果字符串中有空格并且此处没有空格,则浏览器中的CSS会换行。
(".")
并在其后直接插入空格?请记住,99%的字符串中没有句号。代码必须检测它是否有句号,如果是,则进行插入,否则不行。答案 0 :(得分:7)
在每个点后插入一个空格:
var newString = oldString.Replace(".", ". ");
在每个点之后插入一个空格,除了已经一个或多个点在字符串末尾的点:
var newString = Regex.Replace(oldString, @"\.(?! |$)", ". ");
在每个 n 字符后插入一个空格:
var newString = Regex.Replace(oldString, new string('.', n), m => m.Value + " ");
答案 1 :(得分:2)
编辑刚刚编辑了我的帖子。这将循环直到没有“。”在你的字符串中。如果没有,它将跳过它。
String myText = "4600airportburlingame150anzablvd.burlingamecalifornia94010";
while(myText.Contains("."))
{
int indexOfDot = myText.IndexOf(".");
myText = myText.SubString(0,indexOfDot) + " " + myText.SubString(indexOfDot + 1);
}
答案 2 :(得分:1)
虽然简单的“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;
}
}
答案 3 :(得分:0)
对于1,请尝试myStr = myStr.Replace(".", ". ");
。请注意,这假定在任何其他上下文中都不会使用句点(例如,小数点分隔符)。
2,请参阅Pabuc的答案。
答案 4 :(得分:-1)
您可以使用string.Replace(".", ". ")
String myText = "4600airportburlingame150anzablvd.burlingamecalifornia94010";
myText = myText.Replace(".", ". ");