
我在学习中发现在求数组或者字符串的长度的时候,用到length的时候,有时候是length,有时候是length(),很是奇怪,于是上API查了一下,发现一些小细节。
首先看看这段代码
public class TS{
public static String arr[] = {"s","a","s",};
public static String str = "sas";
public static void main(String [] args){
System.out.println(arr.length);
//System.out.println(arr.length());
//System.out.println(str.length);
System.out.println(str.length());
} }
这是非注释的打印是正确的代码,结果为;
但当把代码改为
public class TS{
public static String arr[] = {"s","a","s",};
public static String str = "sas";
public static void main(String [] args){
//System.out.println(arr.length);
System.out.println(arr.length());
System.out.println(str.length);
//System.out.println(str.length());
} }
这时候就出了问题,报错为.
这就可以发现,数组对应是length,字符串对应是length()。
那么这到底是怎么回事呢,查询API可知,即length()是字符串的一个方法,而length则是数组的属性。
这个小细节平常需要格外注意,以减少debug的工作量。