何时使用.length vs .length()

好的,我有这个代码:

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()是因为你试图获得字符串的长度而不是数组吗? PS我是初学者,所以这对你来说似乎很明显,但对我来说并非如此。

他们是两个完全不同的东西。

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

.length()是对String的方法调用。

你看到两者都是因为首先,你在数组的长度上进行迭代。 数组的内容是String ,并且您想要将它们的所有长度相加,因此您可以在数组中的每个String上调用长度。

.length用于Arrays, .length()用于Strings

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

.length是一个数组属性。 .length()String类的一个方法( 看这里 )。

循环时,使用people.length循环遍历数组的长度。

但是当你使用people[i].length() ,你正在访问数组的那个位置的字符串,并获得字符串的长度,因此使用String类中的.length() 方法

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