关于JAVA中对字符串与数组求长度的问题

Posted on 2016-07-16 11:30  醉zzz  阅读(12424)  评论(0)    收藏  举报

  我在学习中发现在求数组或者字符串的长度的时候,用到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的工作量。