我在学习中发现在求数组或者字符串的长度的时候,用到length的时候,有时候是length,有时候是length(),很是奇怪,于是上API查了一下,发现一些小细节。
首先看看这段代码
1 public class TS{ 2 public static String arr[] = {"s","a","s",}; 3 public static String str = "sas"; 4 public static void main(String [] args){ 5 System.out.println(arr.length); 6 //System.out.println(arr.length()); 7 //System.out.println(str.length); 8 System.out.println(str.length()); 9 } 10 11 }
这是非注释的打印是正确的代码,结果为;
但当把代码改为
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的工作量。