これは非常に単純な質問のように思えますが、驚くほどインターネット上に書かれておらず、自分で正しく実装するのに苦労しています。比較がアルファベットの終わりを「ラップアラウンド」するように、JavaでASCII文字にモジュラー比較関数を実装する最良の方法は何ですか? アルファベット全体を任意の場所で分割できる「between」関数に使用し、「y」が「x」と「b」の間にあるかどうかを尋ねられたときに正しく「true」を返すようにしたいと考えています。
文字の剰余算術に関するすべての質問と回答を既に見つけたので、次のようなコードで剰余加算 (文字シフト) を行う方法を知っています。
char shifted = (((original - 'a') + 1) % 26) + 'a';
ただし、これは Java のビルトインモジュラー算術関数に基づいており、比較できる同等のものはありません。単純な int を使用していたとしても、a < b < c mod 26 (a = 24、b = 25、および c = 1 の場合に true を返す必要があります) かどうかを Java に尋ねる方法はありません。
一般的な質問は、Java でモジュラー比較操作を実装する最良の方法は何かということです。それが難しすぎる問題である場合、ASCII アルファベットに対してそのような比較を機能させる方法は少なくともありますか?