Не работает поиск в файле слова - C#
Формулировка задачи:
Просто слово
"one"
находит, но если изменить строку на"one 1"
, то словоone
уже не находится. Полагаю, нужно добавить разделение через Split и определять пробелы, но что-то у меня не получается. Кто может помочь, буду очень благодарен.
Листинг программы
- using System;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- var cards = new Cards();
- Console.WriteLine(cards.Contains("one"));
- }
- }
- }
Листинг программы
- using System.Collections.Generic;
- using System.IO;
- namespace ConsoleApplication1
- {
- class Cards
- {
- private const string PATH_TO_FILE = "text.txt";
- private HashSet<string> cardsNumbers;
- public Cards()
- {
- var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
- cardsNumbers = new HashSet<string>(cardsNumbersFromFile);
- }
- public bool Contains(string value)
- {
- return cardsNumbers.Contains(value);
- }
- }
- }
text.txt
Листинг программы
- one 1
- 2
- three
- four
- способ у
Решение задачи: «Не работает поиск в файле слова»
textual
Листинг программы
- class Cards
- {
- private const string PATH_TO_FILE = "text.txt";
- private HashSet<string> cardsNumbers;
- public Cards()
- {
- var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
- cardsNumbers = new HashSet<string>(cardsNumbersFromFile, new CardComparer());
- }
- public bool Contains(string value)
- {
- return cardsNumbers.Contains(value);
- }
- }
- public class CardComparer : IEqualityComparer<string>
- {
- public bool Equals(string x, string y)
- {
- return x.StartsWith(y) || y.StartsWith(x);
- }
- public int GetHashCode(string obj)
- {
- int index = obj.IndexOf(' ');
- return index > 0? obj.Remove(index).GetHashCode() : obj.GetHashCode();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д