作为创建哈希表的一部分,我需要将字符串的符号转换为ASCII,并且需要该ASCII的长度。我在此站点上发现,足以将int转换为字符串以将其转换为ASCII,但是我不能将其用作对象。
public int hash(String x) {
int stringLength = x.length();
for (int i = 0; i < stringLength; i++) {
char character = x.charAt(i);
int ascii = (int) character;
int z = ascii.length();
}
我希望获得一些整数方法,但似乎无法正常工作,并且在Cannot invoke length() on the primitive type int
处出现错误ascii.length()
;
答案 0 :(得分:1)
我假设您正在尝试获取字符的值,因为这实际上是ascii代码:
为此,请使用Character类而不是char基元:
Release
答案 1 :(得分:1)
原语不是对象,不能取消引用。
您可以做的是使用Integer,它是一个包装int的类,使用其toString()方法,并在结果上使用length()。
类似
char character = x.charAt(i);
int z = Integer.valueOf((int) character).toString().length();
(已编辑,因为valueOf不带字符)
这将告诉您字符的代码十进制表示形式有多少个数字。我不知道您为什么需要它,但这就是我对您问题的理解。
答案 2 :(得分:-1)
要获取ASCII码的长度,可以将值转换为字符串并获取其长度:
public int hash(String x) {
int stringLength = x.length();
String value;
int ascii, asciiLength;
for (int i = 0; i < stringLength; i++) {
ascii = x.charAt(i); // chars are just fancy numbers. This does an implicit cast to int
value = Integer.toString(ascii);
asciiLength = value.length();
}
}