HashTable折叠方法

我正在尝试为HashTable编写一个shift折叠方法。

该方法传递一个key(int)值,键值被分成数字组,并添加组。 组中的位数应与arraySize相对应。

EX)输入arraySize = 15; key = 123;

输出:12 + 3 = 15

然而,我写的方法是落后的。

public class C{ public int folding(int key) { int digit =1; // how many digits in arraySize? int arraySize =15; //if 15, 2-digits int hashVal =0; while(arraySize >0 ){ //digit is 100; digit *= 10; arraySize /= 10; } while(key>0){ //hashVal should be 15 hashVal +=key%digit; key /= digit; } System.out.print(hashVal); return hashVal; } public static void main(String[] args) { C g = new C(); g.folding(123); } } 

我明白了

1 + 23 = 24

可以对我的原始代码进行一些修改来修复它以提供预期的输出吗?

或者是唯一的方法来将arraySize(int)转换为String并按其长度解析keyValue?