我需要制作一个程序,从用户那里获取一个 3 位数字并打印一个 6 位数字 EX:输入:123 输出:112233
问问题
210 次
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 回答