C#用符号替换数字

时间:2016-12-11 15:24:48

标签: c#

我有一个用户输入随机字符的数组,我需要用符号" *"替换所有数字。最糟糕的是,我不能使用内置函数!如果可以,请帮忙!

2 个答案:

答案 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] = '*';
    }
}