这似乎是一个非常简单的问题,但在互联网上几乎没有关于它的文章,而且我很难自己正确地实现它。在 Java 中对 ASCII 字符实现模块化比较函数的最佳方法是什么,以便比较“环绕”字母表的末尾?我想将它用于“介于”函数中,该函数可以在任意位置分割整个字母表,并在被问及“y”是否在“x”和“b”之间时正确返回“真”。
我已经找到了所有关于字符模运算的问题和答案,所以我知道如何使用这样的代码进行模加法(字符移位):
char shifted = (((original - 'a') + 1) % 26) + 'a';
但是,这是基于 Java 内置的模块化算术函数,没有等效的比较。即使我使用的是普通整数,我也无法询问 Java 是否 a < b < c mod 26(如果 a = 24、b = 25 和 c = 1,它应该返回 true)。
所以一般的问题是,在 Java中实现模块化比较操作的最佳方式是什么?如果这是一个太难的问题,是否至少有一种方法可以让这种比较适用于 ASCII 字母表?