我有一个用户输入随机字符的数组,我需要用符号" *"替换所有数字。最糟糕的是,我不能使用内置函数!如果可以,请帮忙!
答案 0 :(得分:1)
基本上,字符数组不是字符串。您可以使用此正则表达式完成工作。例如:
string test = "dsad54dsads56dasd7a8s 5468sda";
正则表达式:
string t1 = Regex.Replace(test, "[0-9]+", "*");
或
string t1 = Regex.Replace(test, "[0-9]", "*");
不同之处在于,第一个将仅用一个*替换所有连续数字。第二个将用*。
替换每个数字或者,如果将regex视为内置函数,则可以使用以下内容:
char[] t2 = test.Select(c =>
{
if (c >= '0' && c <= '9')
{
return '*';
}
return c;
}).ToArray();
答案 1 :(得分:1)
如果char.Number
在功能中构建,则应使用ASCII TABLE中的数字值作为数字。
string input = "ArrayWithR23andomChar44acter3sWit55hNumbersI6nIt";
char[] array = input.ToCharArray();
for(int i=0; i < array.Length; i++)
{
if (!char.IsNumber(input[i]))
continue;
array[i] = '*';
}
这里没有char.IsNumber
你可以这样做:
string input = "ArrayWithR23andomChar44acter3sWit55hNumbersI6nIt";
char[] array = input.ToCharArray();
for(int i=0; i < array.Length; i++)
{
if ((int)input[i] >= 48 && (int)input[i] <=57)
{
array[i] = '*';
}
}