Csharp/C#教程:用星号替换小写字符分享


用星号替换小写字符

我写了一个代码,用于将小写字符替换为*。 但它不起作用。 问题出在哪儿?

private void CharacterReplacement() { Console.WriteLine("Enter a string to replacement : "); string TargetString = Console.ReadLine(); string MainString = TargetString; for (int i = 0; i < TargetString.Length; i++) { if (char.IsLower(TargetString[i])) { TargetString.Replace(TargetString[i], '*'); } } Console.WriteLine("The string {0} has converted to {1}", MainString, TargetString); } 

Replace()返回一个新字符串,因此您需要将其重新分配给TargetString

 TargetString = TargetString.Replace(TargetString[i], '*'); 

表达你的意图的另一种方式是使用Linq – 不确定哪个更好,这可以避免所有临时字符串,但还有其他开销:

 TargetString = new string(TargetString.Select(c => char.IsLower(c) ? '*' : c) .ToArray()); 

您当然可以使用正则表达式在一个简短的行中写这个:

 string output = Regex.Replace("ABCdef123", "[az]", "*"); // output = "ABC***123" 

基于Arto注释的改进版本,可处理所有小写的unicode字符:

上述就是C#学习教程:用星号替换小写字符分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 string output = Regex.Replace("ABCdefëï123", "p{Ll}", "*"); // output = "ABC*****123" 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/988276.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐