C#-计算字符串长度并用另一个字符替换每个字符

C#-计算字符串长度并用另一个字符替换每个字符,c#,string,replace,character,C#,String,Replace,Character,如何计算一个字符串中的字符数并创建另一个具有相同字符数的字符串,但用单个字符(如“*”)替换所有字符?多谢各位 string newString = new string('*', oldString.Length); 当然,这是为了显示密码等价物,最好使用固定数量的星号-提示越少越好。当然,由于您显然是在对密码进行散列(使用salt)并仅存储散列,因此您无法知道实际长度-p另一种解决方案是: Console.Write(System.Text.RegularExpressions.Regex

如何计算一个字符串中的字符数并创建另一个具有相同字符数的字符串,但用单个字符(如“*”)替换所有字符?多谢各位

string newString = new string('*', oldString.Length);

当然,这是为了显示密码等价物,最好使用固定数量的星号-提示越少越好。当然,由于您显然是在对密码进行散列(使用salt)并仅存储散列,因此您无法知道实际长度-p另一种解决方案是:

Console.Write(System.Text.RegularExpressions.Regex.Replace("test",".", "*"));

从性能角度来看,为这样的目的创建Regex对象是极不明智的。以上字符串方法的性能会更好。是的,我知道,但问题似乎没有要求任何性能影响。请“从性能角度……不明智地创建正则表达式对象”。虽然这可能不是一个理想的解决方案,但这闻起来像是一个“过早的优化猜测”的糟糕案例。好的,很高兴迎合您的意见。“过早优化猜测”。然而,我关于为这个(相对于其他解决方案)创建正则表达式解析器不是一个好主意的评论是站得住脚的。如果模式被缓存了怎么办?对于密码输入字段来说,固定数量的星号是没有意义的。如果你不打算给用户任何反馈,那么你最好不要显示任何东西。
var message = "hello world" ;
var newMessage = new String('*', message.Length);