何时使用.length vs .length()

时间:2014-04-30 19:24:15

标签: java arrays

好的,我有这段代码:

public class Test {
    public static void main(String[] args) {

        String[] people = {"Bob", "Billy", "Jim"};
        int sum = 0;

        for(int i = 0; i < people.length; i++) {
            sum += people[i].length();
        }
    }
}

我的问题是为什么people[i].length().length()而不是.length。我想要使​​用.length而不是.length()来获取数组的长度。您是否使用.length()因为您试图获取字符串的长度而不是数组?附:我是初学者,所以这对你来说似乎很明显,但这不适合我。

3 个答案:

答案 0 :(得分:17)

他们是完全不同的两件事。

.length数组上的属性。这不是方法调用。

.length()String上的方法调用。

你看到了两者,因为首先,你在数组的长度上进行迭代。数组的内容为String,您希望将它们的所有长度相加,这样您就可以调用数组中每个String的长度。

答案 1 :(得分:2)

.length适用于数组,.length()适用于字符串

数组的长度是一个字段,而字符串的长度是一个函数 - .length()

答案 2 :(得分:1)

.length是一个数组属性。 .length()是类Stringlook here)的方法。

循环时,使用people.length循环显示数组的长度。

但是当您使用people[i].length()时,您正在访问数组该位置的字符串,并获取字符串的长度,因此使用.length() 方法String班。

但是,为了让您更加困惑,String的核心只是一个char的数组(如下所示:char[])。可以认为.length也应该有效,因为它是一个字符数组,但是,它是一个,这就是.length无法工作的原因。显示空参数显示它是一个方法,并且显示没有参数显示它是一个属性(如类中的static变量)。