如果我有这个String
:
String paragraphWord = "This is A String of WoRDs";
这是我想要的结果:
k k K 字符串 k WorDS
所以我想在第一个字母大写的每个单词之前添加 k 。怎么做?
这是我尝试过的没有成功的事情:
String paragraphWord = "This is A String of WoRDs";
String replacewords = string.Concat(paragraphWord.Select(c => char.IsUpper(c) ? "k" + c.ToString() : c.ToString())).TrimStart();
(错误的)结果是:kThis is kA kString of kWokRkDs
答案 0 :(得分:2)
使用正则表达式:
string paragraphWord = "This is A String of WoRDs";
var reg = new Regex(@"(?<=^|\W)([A-Z])");
Console.WriteLine(reg.Replace(paragraphWord,"k$1"));
解释(?<=^|\W)([A-Z])
?<= positive look behind
^|\W start of the string or a whitespace character
[A-Z] A single upper case letter
因此,我们正在寻找一个由字符串的开头或空格开始的单个大写字母。我们将该角色分组,以便我们可以在替换中使用它:
k$1
将我们与k
和匹配组$1
答案 1 :(得分:1)
String kWords = string.Join(" ", "This is A String of WoRDs"
.Split()
.Select(w => Char.IsUpper(w[0]) ? "k" + w : w));