我想创建一个信用卡编码器(如果这个词确实存在),它可以将字符串的前10位变成'*'
。这是我想到的代码:
public static string[] ToCencoredString(this string str)
{
char[] array = Enumerable.Repeat('*', str.Length-1).ToArray();
array = array.Select((cha, index) =>
{
if (index < 10)
array[index] = str[index];
});
}
忽略函数返回值为string[]
的事实,代码中还有另一个与此无关的部分。
我不知道为什么,但我一直收到ArgumentNullException
,这很奇怪,因为在array
中没有一个值是null
。
我做错了什么?
String.Substring
然后将剩下的部分添加到new string('*');
中。 - TheGeneralreturn "******" + str.Substring(10);
- Aleks Andreevstring[]
? - Tim Schmelterstr.Length-1
改为str.Length
。 - jetstream96