-3
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;
    }
4

7 回答 7

1

A.charAt(i)是因为charAt是一个函数,而不是一个数组。

你写来计算's :th 字符和 characterA.charAt(i) - 'A'之间的差异。Ai'A'

于 2014-11-28T12:46:21.103 回答
1

该类String不可变的或值对象。它不会让您直接访问组成字符串的字符,主要是出于性能原因,但也因为它有助于避免一整类错误。

这就是为什么您不能通过[]. 您可以调用A.getChars(),但这会创建底层字符数组的副本

char是一个字符的代码。'A' == 65, 例如。见此。如果A.charAt(1)返回'F'(或 70),则'F' - 'A'给您 5。+1 给您 6。

所以上面的代码把字母变成了数字。您会经常看到的一种模式是charAt(i) - '0'将字符串转换为数字。

但是上面的代码在这方面很奇怪,因为count *= num输入的结果非常随机。要将字母转换为以 26 为基数的数字,应为count = count * 26 + num.

于 2014-11-28T12:51:15.527 回答
0

A.charAt(i)是字符串的一种方法,您也可以A[i]直接访问相同的位置。

当您对字符进行操作(+ 或 -)时,您会得到一个int.

于 2014-11-28T12:46:09.813 回答
0

charAt() 函数的 Java API

charAt()是一个java方法,而不是一个数组

返回指定索引处的 char 值。

句法:

这是此方法的语法:

public char charAt(int index);
于 2014-11-28T12:46:27.243 回答
0

因为charAt()是一种从给定字符串返回字符的方法,而不是数组。字符被写入'A'。字符串被写入"A"

于 2014-11-28T12:48:17.740 回答
0

因为charAt是字符串中的一个方法并且它接受索引。String 在内部维护 char 数组,它对我们来说都是隐藏的,因此你有一个方法而不是数组本身。

原因-'A'是用户想要将该字符转换为整数。因此,例如,您的角色是“B”,用户希望使用将其转换为 intascii value of 'B' which is 66 - ascii value of 'A' which 65

num = 66 - 65 + 1

并做进一步处理。

于 2014-11-28T12:49:06.750 回答
0

因为 charAt() 是 java 中用于 string it 的方法,它返回一个字符。'A' 指的是 char 类型,而我们为字符串类型写“A” http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#charAt%28int%29

于 2014-11-28T12:44:21.087 回答