2017-05-19 9 views
0

私はスーパーシンプルチャットアプリを書いています。私は2人のユーザーAとBの間でチャット履歴をプレーンテキストファイルとして保存します。各ユーザーには固有のIDがあるので、2人のユーザーのIDを連結してファイル名として新しい文字列を作成できると思います。あるユーザが自分のアプリにログインし、別のユーザとの会話履歴を取得したい場合、彼は両方のIDを持ってファイル名を取得します。2つの文字列で新しい文字列を生成する

問題は、連結を行う際に2つのIDの順序が異なるため、ユーザーAまたはユーザーBがチャットファイル名を取得したい場合でも、常に同じ順序に並べ替える必要があるようです。

他の方法があるので、最初に2つの文字列を並べ替える必要はありませんか?

答えて

1

これには2つのIDしか関係していないため、簡単な比較ができます。

string GetId(string a, string b) { 
    // Use some separator that's not part of the IDs or you risk mixing up file names from a different pair of User IDs. 
    string sep = ":"; 
    if (a < b) { 
     return a + sep + b; 
    } else { 
     return b + sep + a; 
    } 
} 
+0

(数値以外の文字が問題になる可能性がある場合)ゼロパッドのユーザーIDは、少なくとも1つの有効なユーザーIDが持つことができる最大桁数に制限されます。セパレータはもちろん、より簡単で効率的です;-) – bitifet

関連する問題