2015-05-05 1 views
-5

У меня есть форма с текстовым полем, которое принимает 12 цифр в качестве входных данных.Нужно искать комбинацию чисел в текстовом поле (C#)

Я хочу, чтобы иметь возможность искать двухзначные, 3-значные, 4-значные и 5-значные комбинации и показывать заранее определенные выходы для каждой найденной комбинации.

Пример

Текст, введенный в текстовое поле: 919982115672

Выходы

8211 : Some predefined text 
82 : Some predefined text 
9821 : Some predefined text 
5672 : Some predefined text 

И так далее

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

Thank вы.

+2

Покажите нам, что вы получили до сих пор, и что не сработало для вас. – Reniuz

+1

Я думаю, вы должны проверить [Какие темы я могу задать здесь?] (Http://stackoverflow.com/help/on-topic) SO - это сайт Q & A, а не сайт-учебник. Вопросы, которые задают конкретную проблему программирования, находятся в сфере охвата. Вопросы, запрашивающие код или учебники, выходят за рамки и быстро закрываются или закрываются. То же самое касается неопределенных или широких вопросов. –

ответ

0

Попробуйте это:

string Input = "919982115672"; 
Console.Write(Search(Input)); 


public string Search(string Input) 
{ 

    Dictionary<string, string> PreDefinedSearchAndTexts = new Dictionary<string, string>(); 

    PreDefinedSearchAndTexts.Add("8211", "Hello"); 
    PreDefinedSearchAndTexts.Add("82", "My name is inigo montya"); 
    PreDefinedSearchAndTexts.Add("9821", "You killed my father"); 
    PreDefinedSearchAndTexts.Add("5672", "Prepare to die"); 

    StringBuilder sb = new StringBuilder(); 

    foreach(string Key in PreDefinedSearchAndTexts.Keys) 
    { 
     if(Input.Contains(Key)) 
     { 
      sb.Append(Key).Append(" : ").AppendLine(PreDefinedSearchAndTexts[Key]); 
     } 
    } 
    return sb.ToString(); 
} 

Результаты:

8211 : Hello 
82 : My name is inigo montya 
9821 : You killed my father 
5672 : Prepare to die 
+0

Спасибо за помощь. Это сработало для меня. Извините, если мой вопрос был неопределенным, я постараюсь быть более конкретным в следующий раз около –

+0

Рад помочь. Пожалуйста, отметьте ответ, как принято. –

0

Вы ищете подстроки, как здесь:

string text = "919982115672"; 
Dictionary<string, string> combiTexts = new Dictionary<string, string> 
{ 
    {"8211","Some predefined text"}, 
    {"82","Some predefined text"}, 
    {"9821","Some predefined text"}, 
    {"5672","Some predefined text"} 
}; 
var matchingSubstrings = text.getAllSubstrings() 
    .Where(combiTexts.ContainsKey) 
    .Select(str => string.Format("{0} : {1}", str, combiTexts[str])); 

Используется это расширение, чтобы извлечь все подстроки из строки:

public static IEnumerable<string> getAllSubstrings(this string word) 
{ 
    return from charIndex1 in Enumerable.Range(0, word.Length) 
      from charIndex2 in Enumerable.Range(0, word.Length - charIndex1 + 1) 
      where charIndex2 > 0 
      select word.Substring(charIndex1, charIndex2); 
} 

Выходной

foreach(string output in matchingSubstrings) 
    Console.WriteLine(output); 

9821 : Some predefined text 
82 : Some predefined text 
8211 : Some predefined text 
5672 : Some predefined text 
0

На текстовом поле изменилось событие просто сравнивает текст в текстовом поле с предопределенными строками, которые вы хотите искать (так что для каждый номер пользователь добавляет, ваша программа будет проверять на месте, если была обнаружена какая-либо комбинация)

Смежные вопросы