-11

我需要制作一个程序,从用户那里获取一个 3 位数字并打印一个 6 位数字 EX:输入:123 输出:112233

4

4 回答 4

3

使用任意位数执行此操作的通用方法如下所示:

string input = Console.ReadLine();
StringBuilder output = new StringBuilder(input.Length * 2);

foreach (char c in input)
{
   output.append(c);
   output.append(c);
}

Console.WriteLine(output.ToString());
于 2012-10-14T22:23:15.623 回答
2

您可以Enumerable.Repeat在 LINQ 查询中使用:

public static String duplicateChars(IEnumerable<Char> input, int factor)
{
    var chars = from c in input
                from cc in Enumerable.Repeat(c, factor)
                select cc;
    return new String(chars.ToArray());
}

测试:

String result = duplicateChars("123", 2);

演示:http: //ideone.com/57KzI

或简短版本:

new String("123".SelectMany(c => Enumerable.Repeat(c, 2)).ToArray());
于 2012-10-14T22:25:25.827 回答
0

我假设您实际上会得到任何数字作为输入,而不是特别是三位数字。

你可以这样做:

Console.WriteLine(String.Concat(Console.ReadLine().Select(c => c.ToString() + c.ToString())));
于 2012-10-14T22:20:30.330 回答
0

您也可以使用正则表达式

var reg = Regex.Replace("123", @"\d", @"$&$&");

或作为一种方法

public static string DuplicateChars(string term)
 {
 return Regex.Replace(term, @"\d", @"$&$&");
 }

于 2012-10-15T06:40:57.377 回答