Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Удалить из сообщения все однобуквенные слова (вместе с лишними пробелами). используя StringBuilder. Вот так не принимают.
using System;
using System.Text;
namespace OOP3
{
class Class
{
private static void Main(string[] args)
{
Console.WriteLine("Введите строку состоящую из слов разделенных пробелами");
string text = (Console.ReadLine());
string[] slova = text.Split(' ');
for (int i = 0; i < slova.Length; i++)
{
if (slova[i].Length != 1)
Console.Write(slova[i] + " ");
}
Console.WriteLine();
}
}
}
Вот задание. Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Удалить из сообщения все однобуквенные слова (вместе с лишними пробелами). используя StringBuilder. Его нужно сделать с помощью StringBuilder
using System;
using System.Text;
namespace OOP3
{
class Class
{
private static void Main(string[] args)
{
Console.WriteLine("Введите строку состоящую из слов разделенных пробелами");
string[] words = Console.ReadLine().Split(' ');
StringBuilder sb = new StringBuilder();
for (int i = 0; i < words.Length; i++)
{
if (words[i].Length != 1)
Console.Write(words[i] + " ");
}
Console.WriteLine();
}
}
}
Но не знаю, может нужен Remove для удаления или я ошибаюсь?
Да сойдет и так. Просто у меня правильно сделано через StringBuilder?. Препод сказал что изначальный код, не удаляет, а пересоздает. Который отправил со StringBuilder он у меня удаляет или тоже просто пересоздает?
Он ничего не делает
Просто создан неиспользуемый объект, а все остальное осталось так же.
Если надо без пересоздания, то да, Split надо выкинуть, идти по строке и удалять нужные слова через Remove (в данном случае видимо можно искать “одну букву между двумя разделителями”, еще в идеале учесть начало/конец строки).
Раз удалять, то идти проще с конца (sb.Length - 1) до 0, а не наоборот.
Ну так думайте, пробуйте на листочке решить, чтобы придумать алгоритм )
Выше примерная идея описана. Надо в цикле проходить строку посимвольно и искать/удалять нужные слова.
Выше написано в каком направлении копать и что использовать.
Если вы хотите, чтобы кто-то просто решил задачу за вас, то может быть конечно “повезет” и кто-то где-то это сделает, но это — не эффективный способ обучения. Это ж учебная задача предназначенная для практики при изучении.
Пробуйте что-то сделать, формулировать конкретные вопросы (а во время формулирования может и решение найдется ).