Не работает сравнения char со string

149
03 февраля 2022, 01:30

Нужно выделить из текста слова, в которых количество гласных звуков парное. Вот что у меня вышло. Но выдаёт ошибку, 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] + " ");
          }
        }
      }
    }
  }
}
Answer 1
char[] smas = new char[] { 'а', 'о', 'и', 'ю', 'у', 'е' };

в которых количество гласных звуков парная

Что это значит? Может, "четная" количества?

Answer 2

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[] { 'а', 'о', 'и', 'ю', 'у','е'};

В таком случае ваше сравнение будет работать.

Answer 3

рекомендую для этого использовать регулярку коротко и ясно

string YourWord;
Regex checkRegex = new Regex("[а]{2}|[о]{2}|[и]{2}|[ю]{2}|[у]{2}|[е]{2}");
   if (checkRegex.IsMatch(YourWord)) //слово совплало
      {
          //Даача          
      }
      else //слово не совплало
      {
           //Дача         
      }
READ ALSO
Как импортировать свою библиотеку Visual Studio

Как импортировать свою библиотеку Visual Studio

Создал себе небольшую библиотеку, теперь хочу импортировать ее в проектКак?

254
Проблема с потоками wpf

Проблема с потоками wpf

Есть обычный таймер класса TimerКаждый раз вызывается метод для отсчёта времени

126
Отобразить прогресс запроса к серверу C#

Отобразить прогресс запроса к серверу C#

Отправляю асинхронный запрос к серверу следующим образом:

125
Как нарисовать треугольник зная три стороны и все углы

Как нарисовать треугольник зная три стороны и все углы

Нужно нарисовать треугольник у которого длина сторон и углы будут равны значениям, которые задал пользовательДумал сделать через Graphics

192