C#Beginner6 task: Exam task Create a Dictionary

Я не можу зрозуміти, як вирішити задачу: C#Beginner6 task: Exam task Create a Dictionary
Чи можна вирішувати такім способом? Якщо так, то яка умова має бути, щоб позбавитись переходу на нову строку на самому початку перед першим словом? Дякую:)
using System;

namespace Exam
{
class DivideString
{
static void Main()
{
string input = Console.ReadLine();
for (int i =0; i<input.Length; i++)
{
if (char.IsLetter(input[i]))
{
Console.Write(input[i]);
}
else if (((input[i] == ’ ') || (input[i] == ‘,’) || (input[i] == ‘.’) || (input[i] == ‘?’) || (input[i] == ‘!’)) && (char.IsLetter(input[i + 1])) && (i < input.Length - 1))
{
Console.WriteLine();
}

        }
    }
}

}

У цьому розв’язку задачі відображення починається з перенесення ( Console.WriteLine(); ), бо компілятор бачить другий знак питання як true.

Так, в тому і є моє питання, яку умову застосувати, щоб воно не спрацьовувало на початку, і разом із тим спрацьовувало всередині. 5 годин думала і вирішила тільки те, що треба порадитись.

Можна додати умову if(i > 0). Тоді не буде відпрацьовувати на початку.
Це підходить, чи не відповіла?

дякую, Maria:) Справа в тому, що за моєю умовою треба робтити перехід на іншу строку якщо поточний char -це один з символів ! . , ? , а наступний char IsLetter. Якщо перший Letter починаєтся після деякої кількісті символів ! . , ? , то спрацьовує Console.WriteLine(); і у консолі це стрибок вниз, хоча індекс може бути вже і більшим за 0.
Наприклад:
input: ??Wow!!
output:

(ось це місце, де працює індекс 1)
Wow

Тому i>0 не підійде, нажаль(

&& (char.IsLetter(input[i + 1])) && (i < input.Length - 1))

у цій частині коду надзвичайно велику роль грає порядок перевірки. Спершу код пробує взяти елемент на одиничку більше і лише потім перевіряє її значення. Нам же треба спершу переконатися, що (i < input.Length - 1). Тож зміна перевірок місцями:

&& (i < input.Length - 1) && (char.IsLetter(input[i + 1])) )

вирішить проблему

Дякую, спрацювало=) Виходить баг був у іншому місці, я думала, що на початку не має бути стрибка вниз, але з ним пропускає.

1 Like