更换星级小写字符 [英] Replace lowercase characters with star

查看:136
本文介绍了更换星级小写字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个代码替换小写字符*。
,但它不工作。
哪里出了问题?



 私人无效CharacterReplacement()
{
Console.WriteLine (输入一个字符串置换:);
串TargetString =到Console.ReadLine();
串MainString = TargetString;
的for(int i = 0; I< TargetString.Length;我++)
{
如果(char.IsLower(TargetString [I]))
{
TargetString.Replace(TargetString [I]中,*);
}
}
Console.WriteLine(字符串{0}转换为{1},MainString,TargetString);

}


解决方案

替换()返回一个新字符串,所以你需要将其重新分配给 TargetString

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



另一种方式来表达你打算将与LINQ的 - 不知道,我更喜欢,这避免了所有临时字符串,但是还有其他开销:

  TargetString =新的字符串(TargetString.Select(C => char.IsLower(三)'*':三)
.ToArray());


i wrote a code for replacing lowercase characters to *. but it does not work. where is the problem?

   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() returns a new string, so you need to re-assign it to TargetString:

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

Another way to express your intend would be with Linq - not sure which I like better, this avoids all the temporary strings but has other overhead:

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

这篇关于更换星级小写字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆