我正在为我的大学计算机科学 B 课程建立一个基数排序实验室,但我一直遇到错误。我需要在某个位置获取数字的值,以便将数字转换为字符串并使用用户 charAt(2) 来获取 587 的个位数。但是,charAt 返回 55,这是没有意义的然后我得到一个索引越界错误,因为该数字应该是 0-9 的一位数。该方法获取链表的头部,将其从链表中移除,然后获取移除的节点并将其添加到桶中。
String s = null;
String val;
for(int i = 0; i <count;i++){
int temp = (Integer)tempNode.getValue();
val = temp+"";
int dval = (int) val.charAt(mod);
tempNode =(name.removeFirst(s));
bucket[dval].addToEnd(tempNode);
tempNode = name.getHead();
}
您正在做的(int) val.charAt(mod)
是获取字符的 ascii 值,请参阅这确实55
适用于字符7
。你想要的是Character.getNumericValue()
得到这个字符的数值。
String str = "7";
System.out.println((int) str.charAt(0)); // Prints 55
System.out.println(Character.getNumericValue(str.charAt(0))); // Prints 7
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句