我有一个带SSN号码作为参数的函数。输入可以采用以下格式之一(SSN的有效性不是因素)
999-99-9999
99-999-9999
9-9999-9999
999999999
99999999-9
连字符可以在任何位置,输入可以是任何长度。 此方法将创建具有相同输入长度的随机数,并且输出将在与输入相同的位置上具有连字符
例如,如果输入9-9999-9999
,则随机输出可以是1-2234-5678
(匹配连字符位置)
例如,如果输入99999999-9
,则随机输出可以是12234567-8
(匹配连字符位置)
public String GenerateNumber(String input)
{
//find the location of hyphens in the input
String output = Generate random number of same length as input //ToString();
//put hyphens on the random number generated above at the same locations matching input
return output
}
如果C#中提供的示例代码也可以使用,那将会有所帮助。
答案 0 :(得分:0)
这是一种做法。
public string GenerateNumber(string input)
{
if (string.IsNullOrWhiteSpace(input))
{
throw new ArgumentNullException("input");
}
Random rand = new Random();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
if (input[i] == '-')
{
builder.Append("-");
}
else
{
builder.Append(rand.Next(0, 9).ToString());
}
}
return builder.ToString();
}