初始化一个 char数组 
 char[] test=new char[10]; test[0]=1;
 test[1]=2;
 
 System.out.println(test.length); 输出是初始化时定义的长度10;
 
 怎么能知道实际初始化的的元素是2个?  

解决方案 »

  1.   

    一个for循环,然后统计里面值不为0的
      

  2.   

    char数组元素默认值就是0 ,而且我要是test[3]=0呢?
      

  3.   

    基本数据类型 都会默认初始化的
    所以即使你只初始化了2个,系统也会初始化剩下的
    要想准确定位数组长度 那就用个list.add(),然后在根据list.size()去初始化你的数组
    (虽然这个方法有点2,- -!)
      

  4.   

    Charactor 有一个静态方法getNumericValue('c'),
    如果是一个可以用数值表示的字符,返回大于0的数字,否则小于0.
    我觉得可以用.个人觉得.
      

  5.   

    楼主有这种需求的话应该使用ArrayList
      

  6.   

    package com.csdn;import java.util.ArrayList;
    import java.util.List;/**
     * @author xiaotang E-mail: [email protected]
     * @version1.00 创建时间:Mar 31, 2009 8:44:12 PM 类说明:
     */public class CharTest {
    public static void main(String args[]) {
    char a[] = new char[10];
    a[0] = 1;
    a[1] = 2;
    List list = new ArrayList();
    for (int i = 0; i < a.length; i++) {
    if (a[i] != 0) { list.add(Character.valueOf(a[i]));
    }
    }
    System.out.println(list.size());
    }}
      

  7.   


    如果初始化的值是0怎么办,没法用if (a[i] != 0) 来做判断
      

  8.   

    package com.csdn;import java.util.ArrayList;
    import java.util.List;/**
     * @author xiaotang E-mail: [email protected]
     * @version1.00 创建时间:Mar 31, 2009 8:44:12 PM 类说明:
     */public class CharTest {
    public static void main(String args[]) {
    char a[] = new char[10];
    a[0] = 1;
    a[1] = 2;
    int j = 0;
    List list = new ArrayList();
    for (int i = 0; i < a.length; i++) {
    if (a[i] != 0) {
    j++;
    }
    }
    System.out.println(j);
    }}
      

  9.   


    这种情况下返回是2,但如果是 a[0] = 1; a[1] = 2;a[2]=0; 返回也是2,但实际上是对3个元素赋予了初始值
      

  10.   

    如果只是判断一个数组的长度,楼上很多方法都可以。
    但楼主非要判断char[]数组里面的元素个数,应该自己给char[]赋予一个初始值,确保这个初始值是你不会放到数组中的,如C里面的'\0'。然后再使用for循环去判断了。其他更好的办法我是没有想到的。
      

  11.   


    java中对于char数组中的元素默认的初始值就是0,怎么改变?
      

  12.   

    不是吧,char数组的默认值是'\000',好像是null的意思判断个数,写个for,当读取到的a[i]是'\000'时,跳出就可以了
      

  13.   

    这还真的不太好办,其实test[3]、test[4]……都已经是0了,就是不知道哪个0是自己赋的而不是自动的
      

  14.   

    实在是受不了了 
    strlen() 标准c库函数 不久行了