屏蔽除最后n个字符之外的字符串的所有字符

che*_*lui 10 c# string

我想知道如何用"除最后一个数字字符"之外的条件替换字符串的字符?

例:

string = "4111111111111111";
Run Code Online (Sandbox Code Playgroud)

我想做到这一点

new_string = "XXXXXXXXXXXXX1111"
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我将字符替换为"X",除了最后4个字符.

我怎么可能实现这个目标?

Xav*_*nas 23

那适合你吗?

var input = "4111111111111111";
var length = input.Length;
var result = new String('X', length - 4) + input.Substring(length - 4);

Console.WriteLine(result);

// Ouput: XXXXXXXXXXXX1111
Run Code Online (Sandbox Code Playgroud)


DRa*_*app 10

怎么样......

new_string = new String('X', YourString.Length - 4)
                  + YourString.Substring(YourString.Length - 4);
Run Code Online (Sandbox Code Playgroud)

根据当前字符串-4的长度创建一个新字符串,并将其全部设为"X".然后添加原始字符串的最后4个字符


mel*_*okb 7

这是一种思考它的方法.拨打最后一个数字字符离开n:

  1. 将替换多少个字符X?字符串的长度减去n.
  2. 我们如何用其他字符替换字符?你不能直接修改string,但你可以建立一个新的.
  3. 如何n从原始字符串中获取最后一个字符?有几种方法可以做到这一点,但最简单的方法是Substring,它允许我们通过指定起点和可选的结束点来获取字符串的一部分.

所以它看起来像这样(n从原始字符离开的字符数在哪里,str是原始字符串 - string不能是变量的名称,因为它是保留的关键字):

// 2. Start with a blank string
var new_string = "";

// 1. Replace first Length - n characters with X
for (var i = 0; i < str.Length - n; i++)
    new_string += "X";

// 3. Add in the last n characters from original string.
new_string += str.Substring(str.Length - n);
Run Code Online (Sandbox Code Playgroud)