Как удалить часть строки зная индекс начала и конца части?
Мне нужен код, где я сам ввожу строку, после этого (на следующей строке) я ввожу два числа через пробел, а на третьей должна выводиться изменённая строка.
В этой строке не должно быть символов, индекс которых был записан во второй строке двумя числами (первое число - это первый индекс удаленного символа, а второе - конец удаленной части и последний символ, который нужно удалить). То есть, то, что находится между индексами, тоже должно быть удаленно.
Вот максимум, что я смог сделать:
string str = Console.ReadLine();
int num1 = int.Parse(Console.ReadLine());
int num2 = int.Parse(Console.ReadLine());
str = str.Replace(str[num1-1], '#');
str = str.Replace(str[num2-1], '#');
for (int i = 0; i < str.Length; i++)
{
Console.Write(str[i]);
}
- Как мне записать два числа в одну строку через пробел?
- Как мне удалить эту часть строки(символы от первого индекса к второму)?
Пример, что должно получиться:
Ввод: Press any key
Ввод: 7 10
Вывод: Press key
Ответы (2 шт):
Автор решения: EvilVolfy
→ Ссылка
Как-то так
//Ввод
string txt = Console.ReadLine();
string s = Console.ReadLine();
//Определяем границы удаления
int n = Convert.ToInt32(s.Substring(0, s.IndexOf(' '))) - 1;
s = s.Remove(0, s.IndexOf(' '));
int k = Convert.ToInt32(s) - n;
//Удаляем
txt = txt.Remove(n, k);
//Вывод
Console.WriteLine("\n{0}", txt);
Автор решения: Andrew Stop_RU_war_in_UA
→ Ссылка
var str = Console.ReadLine();
var nums = Console.ReadLine().Split().Select(Int32.Parse).ToArray();
str = str.Remove(nums[0], nums[1] - nums[0] );
Console.WriteLine(str);