我需要制作一个程序,从用户那里得到一个3位数字并打印一个6位数字 EX:输入:123 输出:112233
答案 0 :(得分: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());
答案 1 :(得分:2)
您可以在LINQ查询中使用Enumerable.Repeat
:
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);
或简短版本:
new String("123".SelectMany(c => Enumerable.Repeat(c, 2)).ToArray());
答案 2 :(得分:0)
我认为你实际上会得到任何数字作为输入,而不是特别是三位数。
你可以这样做:
Console.WriteLine(String.Concat(Console.ReadLine().Select(c => c.ToString() + c.ToString())));
答案 3 :(得分:0)
您也可以使用正则表达式
var reg = Regex.Replace("123", @"\d", @"$&$&");
或作为方法
public static string DuplicateChars(string term)
{
return Regex.Replace(term, @"\d", @"$&$&");
}