6

例子:

string input = "super";
string rep = "a";

我希望根据给定的输入输出相同的租船人string length。输出应该是“ aaaaa”。我不喜欢使用自己的 FOR 或 While 循环逻辑,有没有其他方法可以完成它。

4

6 回答 6

27

使用构造函数

string output = new string('a', input.Length);

如果你想重复真正的stringn 次,你可以使用Enumerable.Repeat

string output = string.Join("", Enumerable.Repeat(rep, input.Length));

我用String.Join指定的分隔符连接每个字符串(在这种情况下没有)。

于 2013-06-01T07:23:45.333 回答
7

通过使用正则表达式

string input = "123";
string rep = "Abc";
string output = Regex.Replace(input , "(.)", rep)

通过使用 LINQ

string output = string.Concat(input.Select(c => rep));

输出

AbcAbcAbc

于 2013-06-01T07:30:35.383 回答
3

只是为了好玩,这里有另一种方式:

new string(input.Select(c => 'a').ToArray());
于 2013-06-01T07:36:48.367 回答
0

另一种方式 :

string input = "super";
string rep = "a";
var newStr = input.Select(x => rep);
于 2013-06-01T08:22:11.870 回答
0

如果您想要一个很大但很容易理解的解决方案:

string output = "";
foreach(char a in input) {    // == for(int i = 0; i < input.length; i++) {
    output += rep;
}

我不知道如何使用构造函数。
这是一个非常简单的解决方案,但它只适用于字符。所以你不能重复字符串。

于 2013-06-01T10:47:40.327 回答
0
string op = "";
for(int i = 0; i < input.Length; i++)
   op += rep;
于 2013-06-01T11:46:30.607 回答