比如String str="we are happy!!";
        char[] ch=new char[30];
        for(int i=0;i<str.length();i++){
            ch[i]=str.charAt(i);
        }数组长度为30,但是字符没有30个,空位是用什么占据的?c语言的数组有个结尾符号'\0',并且结尾符号会算进数组长度里面。Java数组有结尾符号么?

解决方案 »

  1.   

    char 的是\u0000
      

  2.   

    java和c不同如果是int类型等数字数组 未初始化的时候全为0。
    如果是char类型等字符数组 未初始化的时候全为“ ”。结尾没有\0,和String没有关系。
      

  3.   

    public class Test {
        public static void main(String[] args) {
            String str="wearehappy";
            char[] ch=new char[30];
            for(int i=0;i<str.length();i++){
                ch[i]=str.charAt(i);
            }
            int len=0;
            for(int j=0;j<ch.length;j++){
                if(ch[j] != '\0'){
                    ++len;
                }
            }
            System.out.println(len);//输出为10
        }
    }这个代码的输出为10,如果把代码ch[j]!='\0'改成ch[j]=='\0',输出就为20.感觉char数组的空位就是用'\0'占据的,但是我又没有在书上看到过,所以来求证一下
      

  4.   


    我觉得,java和c、c++看起来很像,但做的工作不一样,java没有指针,c和c++更适合偏底层的东西。
    在java里就不要研究数组了呀,ArrayList多方便啊。
      

  5.   

    java里char的默认值是‘\u0000’,看起来意义跟你这里的‘\0’是一样的吧,至于数组后面肯定没有结尾符什么的,String有没有就不清楚了