何时使用.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
变量)。