黑马程序员技术交流社区

标题: 关于length的小问题 [打印本页]

作者: 叶征东    时间: 2012-8-5 23:19
标题: 关于length的小问题
class Demo
{
        public static void main(String[] args)
        {
  
                System.out.println("Holle world");
        }
       public static void reverse(char[] arr)//反转字符数组
       {
                 for(int start=0,end=arr.length-1;start<end;start++,end--)//(1)为什么此处的length后面不带括号?如果带上则不能通过编译。
                       swap(arr,start,end);
       }
       public static void swap(char[] arr,int x ,int y)
       {
                 char temp=arr[x];
                 arr[x]=arr[y];
                 arr[y]=temp;
       }
       public static String getMaxSubString(String s1,String s2)//获取两个字符串中最大的相同子串。
       {
                 String max="",min="";
                 max=(s1.length()>s2.length())?s1:s2;
                 min=(max==s1)?s2:s1;
                 for(int x=0;x<min.length();x++)
                {
                         for(int y=0,z=min.length()-x;y!=z;y++,z++)//(2)而这儿的length后面却带上了带括号。如果不带上则不能通过编译
                         {
                                    if(s1.contains(min.substring(y,z)))
                                               return min.substring(y,z);
                         }
               }
                return "";
        }
}
(1)带上括号和(2)不带上括号,都会提示找不到符号,如图:
能为我解释下么?谢谢。

作者: 余明辉    时间: 2012-8-5 23:23
数组有个length的属性,注意是属性哦,而不方法,访问属于是用.length来访问
而字符串有length的方法,2个是不同,调用方法肯定要加()
还有1点就是你要注意length的值和下标的值是不同的,下标从0开始,而length是从1开始计算
下标的最大长度是length的值-1
作者: 李志广    时间: 2012-8-5 23:25
本帖最后由 李志广 于 2012-8-5 23:26 编辑

length是在数组中获取数组的长度;length()是用来获取字符串的长度的方法 。希望对你有所帮助!!!


作者: 叶征东    时间: 2012-8-5 23:28
余明辉 发表于 2012-8-5 23:23
数组有个length的属性,注意是属性哦,而不方法,访问属于是用.length来访问
而字符串有length的方法,2个 ...

懂了,谢谢。
作者: 牛杨    时间: 2012-8-5 23:35
(1)处的arr是一个数组,在java中规定了 数组有一个length属性,这个属性用来表示这个数组的长度。如果在 (1)这里带上括号,很明显违反了java的语法规则,所以会编译失败的。
(2)处的min是一个字符串对象,同样原理 在字符串类中规定了一个length()函数用来获取这个字符串对象的长度。如果你在(2)处不带括号,同样也是违反了java的语法规则,所以才会编译失败的。
其实楼主大可不必纠结于这类的问题,因为这类问题都是java硬性规定好的语法。只要平时多练练手记住这些语法规则就偶了。
作者: 叶征东    时间: 2012-8-5 23:42
牛杨 发表于 2012-8-5 23:35
(1)处的arr是一个数组,在java中规定了 数组有一个length属性,这个属性用来表示这个数组的长度。如果在  ...

以前没有碰到过这个问题,也没有往深处去想,今天带括号的和不带括号的同时碰到了,就有疑问了。谢谢了。




问题已解决。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2