2017-10-14 5 views
-1

私はプログラミングの新機能です。私はメッセージを入力するためのテキストボックスと.txtファイルにメッセージを保存するボタンを持っています。ユーザーがテキストボックスに入力すると、面白いですし、保存ボタンを押してください。テキストファイルはHi lolのように受け取り、大声で笑って面白いです。文字の保存方法(例:lol、ASAP、テキストボックスから.txt、WPFを使用した完全省略形)C#

どうすればいいですか?私は辞書クラスをやっただけで、メインウィンドウでこのクラスを呼び出す方法を知りませんし、上記のようにメッセージを作るためにボタンイベントまたはテキストボックスイベントのどちらかを実装しています。ありがとうございました。私のコメントを無視

class SMSTextSpeak 
{ 
    private Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
    public SMSTextSpeak() 
    { 

     dictionary.Add("LOL", "Laughing out loud"); 
     dictionary.Add("404", "I haven't a clue"); 
     dictionary.Add("B4N", "Bye for now"); 
     dictionary.Add("ADN", "Any day now"); 
     dictionary.Add("GOL", "Giggling out loud"); 
     dictionary.Add("IMO", "In my opinion"); 
     dictionary.Add("LY", "Love ya"); 
     dictionary.Add("PM", "Private message"); 
     dictionary.Add("TGIF", "Thank God it's friday"); 
     dictionary.Add("YW", "You're welcome"); 
    } 

    public string Expand(string abbreviation) 
    { 
     if (dictionary.ContainsValue(abbreviation)) 
     { 
      string expansion = dictionary[abbreviation]; 
      return expansion; 
     } 
     return abbreviation; 

    } 
} 

}

+0

'のために例:もし単語が辞書にあればそれを置き換えますか?単純に 'string.Replace(s1、s2)'を使うことができます。ここでs1はdicの単語で、s2はあなたが望むものです。あなたは正規表現を使用して前後に空白を追加することもできます。 – Noctis

+0

Tあなたのお返事にとても感謝します。ボタンクリックイベントまたはテキストボックスイベントでこのコードを実装する必要があるのはどこですか?私は辞書クラスをそのまま保つべきですか? –

答えて

0

あなたExpand方法を変更します。

public string Expand(string message) 
{ 
    string[] splits = message.Split(' '); 
    for (int i = 0; i < splits.Length; i++) 
    { 
     string key = dictionary.Keys.FirstOrDefault(x => x == splits[i].ToUpper()); 
     if (key != null) 
     { 
      splits[i] = (key + " " + dictionary[key]).ToLower(); 
     } 
    } 

    return string.Join(" ", splits); 
} 

は、それを起動します。

private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
{ 
    SMSTextSpeak speak = new SMSTextSpeak(); 

    // for testing 
    string inputText = "Hi lol you are funny"; 
    string outputText = speak.Expand(inputText); // get: Hi lol laughing out loud you are funny 
} 
あなたは `のstring.Split(」「)を使用して単語にあなたの入力(文字列)(破る必要があるでしょう
+0

改行はどうですか? – apocalypse

+0

私に問題を教えてください。 – Iron

+0

それでは、何が問題なのですか? – Iron

0

、私はあなたがこのために探していると思う:キーで

public string Expand(string abbreviation) 
{ 
    if (dictionary.ContainsKey(abbreviation)) 
    { 
     return dictionary[abbreviation]; 
    } 
    return abbreviation; 
} 

見て、値ではなく、他の方法で回避を返します。

+0

hmmm ...あなたの展開は1単語で動作します。テキスト内のすべての単語をループし、それらを「展開」する必要があります。私は 'StringBuilder'を構築し、元の単語の各単語に対して(' Split'と 'Foreach'を使用して)、文字列ビルダーに"展開された "単語を追加します。それで、結果としてそれを設定したいと思います。 – Noctis

関連する問題