2012-10-14 47 views

回答

0

我假設你居然會獲取任何數字作爲輸入,而不是三位數字。

你可以這樣做:

Console.WriteLine(String.Concat(Console.ReadLine().Select(c => c.ToString() + c.ToString()))); 
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()); 
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); 

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

還是短版:

new String("123".SelectMany(c => Enumerable.Repeat(c, 2)).ToArray()); 
0

您還可以使用正則表達式

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

或方法

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