![](/img/trans.png)
[英]How can i capitalize first letter of every word using keypress event with c#?
[英]How can I capitalize every third letter of a string in C#?
如何在 C# 中将字符串的每三个字母大写?
我用for循环遍历整个字符串,但我现在想不出序列。
我怀疑你只是想要这样的东西:
// String is immutable; copy to a char[] so we can modify that in-place
char[] chars = input.ToCharArray();
for (int i = 0; i < chars.Length; i += 3)
{
chars[i] = char.ToUpper(chars[i]);
}
// Now construct a new String from the modified character array
string output = new string(chars);
假设您想从第一个字母开始大写,因此“abcdefghij”将变为“AbcDefGhiJ”。 如果您想在其他地方开始大写,只需更改i
的初始值。
var s = "Lorem ipsum";
var foo = new string(s
.Select((c, i) => (i + 1) % 3 == 0 ? Char.ToUpper(c) : c)
.ToArray());
您已经在遍历字符串中的字符了吗? 然后添加一个计数器,在每次迭代时递增,如果是 3,则使用.ToUpper(currentCharacter)
使其大写。 然后重置你的计数器。
您可以只使用正则表达式。
如果答案是每三个字符那么你想要
var input = "sdkgjslgjsklvaswlet";
var regex = new Regex("(..)(.)");
var replacement = regex.Replace(input, delegate(Match m)
{
return m.Groups[1].Value + m.Groups[2].Value.ToUpper();
});
如果您想要每三个字符,但从您想要的第一个字符开始:
var input = "sdkgjslgjsklvaswlet";
var regex = new Regex("(.)(..)");
var replacement = regex.Replace(input, delegate(Match m)
{
return m.Groups[1].Value.ToUpper() + m.Groups[2].Value;
});
如果需要循环,可以先转换为字符数组,以便更改值。
每三个字符:
var x = input.ToCharArray();
for (var i = 2; i <x.Length; i+=3) {
x[i] = char.ToUpper(x[i]);
}
var replacement = new string(x);
对于从头开始的每三个字符:
var x = input.ToCharArray();
for (var i = 0; i <x.Length; i+=3) {
x[i] = char.ToUpper(x[i]);
}
var replacement = new string(x);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.