Повторение строки(string) заданное количество раз
Задача: Написать функцию с именем repeatString, которая повторяет данный String (переменная s) точное количество раз (переменная n). Функция должна получиться универсальной для любого значения повторений(Напимер 3 раза, 5 раз, 6 раз и т.д.) Код который я смог написать:
namespace Solution
{
public static class Program
{
public static string repeatStr(int n, string s)
{
for (int i = 2; i < n; i++)
{
s = s + s;
}
return s;
}
}
}
Получается так, что при n = 3, знаков звёздочки (s = "*") печатается на 1 больше чем нужно:
Должно быть: "***"
Получается: "****"
При изменении начального значения счётчика i на 2, получается обратная ситуация - печатается 2 звёздочки, вместо 3-х нужных.
!!! Прошу заметить, что значения string s и int n - могут быть любыми!!! Это значит, что вместо одного знака "*", может быть поставлено слово "Hello!"
Ответы (2 шт):
У вас удвоение на каждой итерации s = s + s; а должно быть
String result = "";
for (int i = 1; i < n; i++)
{
result += s;
}
return result;
или по человечески
StringBuilder sb = new StringBuilder("");
for (int i = 1; i < n; i++)
{
sb.Append(s);
}
return sb.ToString();
string.Join("", Enumerable.Repeat(s, n));
Пример: https://ideone.com/tFwVKB
using System;
using System.Linq;
public class Test
{
public static void Main()
{
string s = "*abc*";
int n = 5;
string res = string.Join("", Enumerable.Repeat(s, n));
Console.WriteLine(res);
}
}