【发布时间】:2014-04-24 22:11:11
【问题描述】:
我需要一个 C# 解决方案来清理一些名称、删除任何空格或制表符、前导或尾随以及字符之间、特定字母。如果单词的最后一个字母和第一个字母大小写相同,则删除空格。否则留一个空格。
示例:
之前:Rob ert Pla nt
之后:Robert Plant
或者
之前:Ro bert Plant
之后:Robert Plant
注意去掉空格是因为o和b大小写相同,但是t和P是保留的,因为P大写而t小写。
到目前为止我能做的最好的事情是:
public static string RemoveMultiSpace(string input)
{
return Regex.Replace(input, @"\s+", " ");
}
static void Main(string[] args)
{
Console.Write(RemoveMultiSpace("Ro bert Plant"));
Console.ReadKey();
}
这是输出:Ro bert Plant,但我需要类似的输出:Robert Plant
【问题讨论】:
-
这对于像
Ro bert Plant这样的输入开始变得棘手,除非你考虑到大小写。您似乎想要 a) 删除小写字母之间的间距,以及 b) 删除所有连续出现的多个空格。 -
@EricJ。我仅以罗伯特·普兰特(Robert Plant)这个名字为例:这对于任何匹配的单词字母都是相同的,无论名称如何。示例:
Cha rlie Brown变为Charlie Brown。 -
@UnaverageGuy,你是说第一个和第二个名字都以大写字母开头?
-
这个问题似乎是在做出这样的假设,当然。
-
@ClickRick,是的;我和一位名叫 Mark de Villiers 的同事一起工作!
标签: c#