Edw*_*ard 5 java math ascii string-comparison
这似乎是一个非常简单的问题,但是在互联网上关于它的报道却很少,而且我很难自己正确地实现它.在Java中对ASCII字符实现模块化比较函数的最佳方法是什么,这样比较"包围"字母表的结尾?我想将它用于可以在任意位置对整个字母进行分区的"between"函数,并在被询问'y'是否在'x'和'b'之间时正确返回"true".
我已经找到了所有关于字符模块化算术的问题和答案,所以我知道如何使用这样的代码进行模块化添加(字符移位):
char shifted = (((original - 'a') + 1) % 26) + 'a';
Run Code Online (Sandbox Code Playgroud)
但是,这是基于Java内置的模块化算术函数,它们没有等效的比较.即使我使用普通的int,我也无法询问Java是否<b <c mod 26(如果a = 24,b = 25,c = 1则应该返回true).
所以一般的问题是,在Java中实现模块化比较操作的最佳方法是什么?如果这个问题太难了,那么至少有一种方法可以让这种比较适用于ASCII字母吗?
A < B < C在循环队列中测试时,您始终可以假设A <= Band 已回绕或未回绕。
如果A < B,则没有发生换行。如果其中之一B < C or C < A,则 B 位于 A 和 C 之间。
如果A > B,那么你就已经包装好了。如果B < C and C < A,则 B 位于 A 和 C 之间。
您需要自己定义如何处理 A==B、B==C 或 A==C。