[C#] Домашно Strings and Text Processing - 14 задача


5

Условие: A dictionary is stored as a sequence of text lines containing words and their explanations. Write a program that enters a word and translates it by using the dictionary.

Sample dictionary:

.NET - platform for applications from Microsoft
CLR - managed execution environment for .NET
namespace - hierarchical organization of classes

Решениеsource.

Обяснение: Разделяме стринга на две спрямо символа "". Аз съм взел предвид, че може и в превода да се съдържа същия символ. Речникът е сортиран и може да се търси и по-бързо от линейно.

P.S. Символът на презентацията е тире "", а не е минус ("-"). Ако не виждате разликата ги пуснете в 10 задача. Отне ми десетина минути, докато разбера защо не ми работи решението.




Отговори



0

http://pastebin.com/5PxzJKeC

Използвам Regex.. Търсената дума се търси в началото на всеки ред (RegexOptions.Multilinе).




0
Имам проблем при това решение.Защо при въвеждане на всеки ред ми режи първата буква освен на първи ред.
http://pastebin.com/Zdcx7Pk7

от TodorDimitrov (757 точки)


0
не съм сигурен каква ти е идеята за въвеждане на самия речник. По какъвто и начин да си го замислил обаче, между всеки две въведени стойности в StringBuilder-а sb добавяш по едно тире. Така преди CLR и namespace ти се добавя по едно тире. След това като сплитнеш триеш първия символ след тирето, т.к. смяташ че е интервал, а всъщност е първата буква на термина. Помисли точно как ще се въвеждат термините заедно с определенията и дали наистина имаш нужда от допълнителното тире. Ако го махнеш, т.е. да стане така
sb.Append(dictionary);
и термините с определенията се въвеждат на един ред работи без проблем.

от wnvko (3123 точки)

0
Благодаря ще помисля.Тирето ми трябваше защото по-късно split-вам по него.

от TodorDimitrov (757 точки)