We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Describe the bug/バグの概要 dictionary.yml によるキーワードのロックを行う際は、単語の文字数が多いものから順に処理すべきです。 現状は HashSet のエントリのイテレートの順番に依存しているため、とある単語が別の単語を内包しているようなケースで、意図しない変換が行われる可能性があります。
Server and version/サーバーとバージョン
To Reproduce/再現手順
/ch dic add oosubame オオスバメ /ch dic add subame スバメ /ch dic add kokoromori ココロモリ /ch dic add koromori コロモリ /ch dic add neitio ネイティオ /ch dic add neiti ネイティ
subametooosubame (スバメと大スバメ) oosubametosubame (大スバメとスバメ) koromoritokokoromori (コロモリとこコロモリ) kokoromoritokoromori (小コロモリとコロモリ) neititoneitio (ネイティとネイティお) neitiotoneiti (ネイティおとネイティ)
Expected behavior/期待する結果 上述の辞書登録およびチャット内容を送信した場合、ユーザーは下記のように変換されることを期待します。
subametooosubame (スバメとオオスバメ) oosubametosubame (オオスバメとスバメ) koromoritokokoromori (コロモリとココロモリ) kokoromoritokoromori (ココロモリとコロモリ) neititoneitio (ネイティとネイティオ) neitiotoneiti (ネイティオとネイティ)
現状は、はじめにヒットした文字数の少ない単語のほうが優先的にロックされてしまうため、意図通りの結果になっていません。
Additional context/備考 このバグを解消するためには com.github.ucchyocean.lc3.japanizeJapanizer クラスの下記のコードを修正すれば良いと思われます。
com.github.ucchyocean.lc3.japanizeJapanizer
for ( String dickey : dictionary.keySet() ) { // (中略) }
このコードでは HashSet の中身をそのままイテレートしていますが、そうではなく、HashSet を List に変換した上で文字数の多い順にソートしてからイテレートすることにより、意図通りの変換が行われるようになります。
The text was updated successfully, but these errors were encountered:
🐛Change the order of dictionary judgments
5f412e9
Fix ucchyocean#231
No branches or pull requests
Describe the bug/バグの概要
dictionary.yml によるキーワードのロックを行う際は、単語の文字数が多いものから順に処理すべきです。
現状は HashSet のエントリのイテレートの順番に依存しているため、とある単語が別の単語を内包しているようなケースで、意図しない変換が行われる可能性があります。
Server and version/サーバーとバージョン
To Reproduce/再現手順
Expected behavior/期待する結果
上述の辞書登録およびチャット内容を送信した場合、ユーザーは下記のように変換されることを期待します。
現状は、はじめにヒットした文字数の少ない単語のほうが優先的にロックされてしまうため、意図通りの結果になっていません。
Additional context/備考
このバグを解消するためには
com.github.ucchyocean.lc3.japanizeJapanizer
クラスの下記のコードを修正すれば良いと思われます。このコードでは HashSet の中身をそのままイテレートしていますが、そうではなく、HashSet を List に変換した上で文字数の多い順にソートしてからイテレートすることにより、意図通りの変換が行われるようになります。
The text was updated successfully, but these errors were encountered: