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