Нужно выделить из текста слова, в которых количество гласных звуков парное. Вот что у меня вышло. Но выдаёт ошибку, string не сравнивается со string. Может кто-то знает, как это сделать, чтобы работало?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Program
{
public static void Main()
{
string[] mas = new string[] { "Дом", "Столбы", "Оолег", "66", "day" };
string[] smas = new string[] { "а", "о", "и", "ю", "у","е"};
for (int i = 0; i < mas.Length; i++)
{
for (int j = 0; j < mas[i].Length; j++)
{
for (int x = 0; x < smas.Length; x++)
{
if (mas[i][j] == smas[x])
{
Console.Write(mas[i] + " ");
}
}
}
}
}
}
char[] smas = new char[] { 'а', 'о', 'и', 'ю', 'у', 'е' };
в которых количество гласных звуков парная
Что это значит? Может, "четная" количества?
mas[i] - строка, но mas[i][j] - символ.
smas[x] - строка.
Напрямую строку и символ сравнивать нельзя.
Можно либо так:
if (mas[i][j] == smas[x][0])
Либо так:
if (string.Equals(mas[i][j].ToString(), smas[x]))
Или smas объявить как массив символов:
char[] smas = new char[] { 'а', 'о', 'и', 'ю', 'у','е'};
В таком случае ваше сравнение будет работать.
рекомендую для этого использовать регулярку коротко и ясно
string YourWord;
Regex checkRegex = new Regex("[а]{2}|[о]{2}|[и]{2}|[ю]{2}|[у]{2}|[е]{2}");
if (checkRegex.IsMatch(YourWord)) //слово совплало
{
//Даача
}
else //слово не совплало
{
//Дача
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей