黑马程序员技术交流社区

标题: 数组和字符串长度问题 [打印本页]

作者: 齐连涛    时间: 2012-10-20 10:38
标题: 数组和字符串长度问题
本帖最后由 齐连涛 于 2012-10-26 12:44 编辑

数组的长度length是属性,而字符串的长度是通过length()方法得到的,两种得到长度的方式有什么区别?
或者说,为什么字符串的长度不是属性?
作者: 李兆宁    时间: 2012-10-20 10:47
数组的是数组的属性后面没括号,对于字符串是方法,调用方法时后面有括号:
  1. class Person
  2. {
  3.         public String name;
  4.         public void setName(String name)
  5.         {
  6.                 this.name = name;
  7.         }
  8.         public String getName()
  9.         {
  10.                 return name;
  11.         }
  12. }

  13. class Demo
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 Person p = new Person();
  18.                 p.name = "lee"; //设置对象属性。
  19.                 System.out.println(p.getName()); //调用方法。
  20.         }
  21. }
复制代码

作者: 杨政    时间: 2012-10-20 11:12
属性可以赋值而方法只能获取.为了让你写代码的时候可以对数组长度赋值而不可以对字符串长度赋值,所以

数组的长度length是属性,而字符串的长度是通过length()方法得到.这样你只能获取字符串长度了。

对字符串长度赋值是不合适的.


作者: qiucheng1990    时间: 2012-10-20 15:46
length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.  而的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.
楼上说的也很清楚,,,
作者: 梁枝武    时间: 2012-10-20 18:56
首先应该明确下几个概念:
1,数组是一种特殊对象,可以定义为任何有效数据类型,也就是数组元素既可以是基本数据类型,也可以是类类型或数组。
2,数组中每个元素的类型相同,所有的数组对象都有一个length属性,该属性存放数组的元素个数,数组类没有length()方法。
3,数组有一维和多维数组,一维数组的length属性返回该数组元素个数,多维数组的length属性只返回的是该多维数组中第一维数组的元素个数

4,String 是字符串类,字符串是一个整体,字符串不是基本数据类型,而是复合数据类型
String str=“abc”;等效于:
char data[]={'a','b','c'};
String str=new String(data);
字符串里有一个方法是int length() 返回此字符串的长度。 但没有length属性
字符串的长度指字符串中字符的unicode(两个字节)字符个数

举例:

String s1 = new String("Hello World!");
char c[]={'j','a','v','a'};
int a[]={{45,25},{89,6,7,1},{6,89,1},{9,6,2,1,2}};
String s2 =new String(c);
int i=s1.length();//i=12
int j=s2.length;//j=4
int k=a.length();//k=4
int f=a[3].length;//f=5




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