如何获取值123456789012345或1234567890123456将其转换为:
************2345 和 ************3456
上面的字符串之间的区别是一个包含15位数,另一个包含16位数.
我已经尝试了以下内容,但它没有保留15位数的最后4位数,现在重要的是字符串的长度,无论是13,14,15还是16,我想用a掩盖所有起始数字*,但保留最后4.这是我尝试过的:
String.Format("{0}{1}", "************", str.Substring(11, str.Length - 12))
Run Code Online (Sandbox Code Playgroud)
Chr*_*way 30
像这样的东西:
string s = "1234567890123"; // example
string result = s.Substring(s.Length - 4).PadLeft(s.Length, '*');
Run Code Online (Sandbox Code Playgroud)
这将掩盖字符串的最后四个字符以外的所有字符.它假定源字符串长度至少为4个字符.
Dar*_*rov 18
using System;
class Program
{
static void Main()
{
var str = "1234567890123456";
if (str.Length > 4)
{
Console.WriteLine(
string.Concat(
"".PadLeft(12, '*'),
str.Substring(str.Length - 4)
)
);
}
else
{
Console.WriteLine(str);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*fer 14
最简单的方法:创建一个扩展方法来提取最后四位数字.在String.Format调用中使用它.
例如:
public static string LastFour(this string value)
{
if (string.IsNullOrEmpty(value) || value.length < 4)
{
return "0000";
}
return value.Substring(value.Length - 4, 4)
}
Run Code Online (Sandbox Code Playgroud)
在你的代码中:
String.Format("{0}{1}", "************", str.LastFour());
Run Code Online (Sandbox Code Playgroud)
在我看来,这会导致代码更易读,并且可以重复使用.
编辑:也许不是最简单的方法,但可以产生更可维护的结果的替代方式.<耸肩/>
尝试这个:
var maskSize = ccDigits.Length - 4;
var mask = new string('*', maskSize) + ccDigits.Substring(maskSize);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40950 次 |
| 最近记录: |