Answer the question
In order to leave comments, you need to log in
Where is the error in checking c Split('-')?
When checking the group index, there should be 3 or 4 letters before the dash and 3 digits after (Example: zit-101)
But when you enter zit101 or 101zit in the terminal, it says what is correct. Where is the mistake?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _3
{
class Program
{
static void Main(string[] args)
{
string index;
Console.Write("Введите индекс группы: ");
index = Console.ReadLine();
bool valid = true; //полагаем, что индекс является группой
var parts = index.Split('-'); //разделяем на части по тире
if (parts.Length == 2) //если получили две части
{
//разбор первой части
string p1 = parts[0];
if (p1.Length == 3 || (p1.Length == 4 && Char.IsLetter(p1[3]))) //трехсимвольная часть, либо 4-символьная
{
//должно быть 3 больших буквы
for (int i = 0; i < 3; i++)
{
if (!Char.IsLetter(p1[i]))
{
valid = false;
break;
}
}
}
else
{
valid = false;
}
//если первая часть подходит, проверяем вторую
if (valid)
{
string p2 = parts[1];
if (p2.Length == 3) //трехсимвольная часть
{
//должно быть 3 цифры
for (int i = 0; i < 3; i++)
{
if (!Char.IsDigit(p2[i]))
{
valid = false;
break;
}
}
//проверка первой цифыр 1..5
if (valid)
{
int a = int.Parse(p2[0].ToString());
if (a < 1 || a > 5)
{
valid = false;
}
}
}
}
}
if (valid)
{
Console.WriteLine("Введен корректный индекс группы");
}
else
{
Console.WriteLine("Строка не является индексом группы");
}
Console.ReadKey();
}
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question