Не работает поиск в файле слова - 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д