public static int get(String A) // it is a method
{
int count = 1;
for (int i = 0; i < A.length(); i++) // So A reads line (any word, for example "Car"), so I understand that length will be 3 and that java will check all the characters.
{
int num = (A.charAt(i) - 'A') + 1;
count *= num;
}
return count;
}
答案 0 :(得分:1)
你写 A.charAt(i)
因为charAt
是一个函数,而不是一个数组。
您编写A.charAt(i) - 'A'
来计算A
&#39; s i
:字符和字符'A'
之间的差异。
答案 1 :(得分:0)
因为charAt()是java中用于字符串的方法,它返回一个字符。和&#39; A&#39;我们写的是&#34; A&#34;对于字符串类型 http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#charAt%28int%29
答案 2 :(得分:0)
A.charAt(i)
是字符串的方法,您也可以A[i]
直接访问相同的位置。
使用字符进行操作(+或 - )时,会得到int
。
答案 3 :(得分:0)
Java API for charAt() function
charAt()是一个java方法,而不是数组
返回指定索引处的char值。
<强>语法:强>
以下是此方法的语法:
public char charAt(int index);
答案 4 :(得分:0)
因为charAt()
是一个从给定String返回字符而不是数组的方法。字符写为'A'
。字符串写为"A"
。
答案 5 :(得分:0)
因为charAt是字符串中的一个方法,它接受索引。 String内部维护char数组,它们都隐藏起来,因此你有一个方法而不是数组本身。
-'A'
的原因是用户想要将该字符转换为整数。因此对于例如你的角色是'B',用户希望使用ascii value of 'B' which is 66 - ascii value of 'A' which 65
num = 66 - 65 + 1
并进行进一步处理。
答案 6 :(得分:0)
班级String
是immutable or value object。它不能直接访问组成字符串的字符,主要是出于性能原因,但也因为它有助于避免一大堆错误。
这就是为什么您无法通过[]
使用数组访问权限的原因。您可以调用A.getChars()
,但这会创建基础字符数组的副本。
char
是角色的代码。例如'A' == 65
。见this table。如果A.charAt(1)
返回'F'
(或70),那么'F' - 'A'
会给你5. + 1给出6。
所以上面的代码将字母变成了数字。您经常看到的一种模式是charAt(i) - '0'
将字符串转换为数字。
但是上面的代码在这方面是奇怪的,因为count *= num
为输入产生一个相当随机的结果。要将字母转换为数字,基数为26,它应显示为count = count * 26 + num
。