62,628
社区成员
发帖
与我相关
我的任务
分享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数组有结尾符号么?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'占据的,但是我又没有在书上看到过,所以来求证一下[/quote]
java里char的默认值是‘\u0000’,看起来意义跟你这里的‘\0’是一样的吧,至于数组后面肯定没有结尾符什么的,String有没有就不清楚了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'占据的,但是我又没有在书上看到过,所以来求证一下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'占据的,但是我又没有在书上看到过,所以来求证一下[/quote]
我觉得,java和c、c++看起来很像,但做的工作不一样,java没有指针,c和c++更适合偏底层的东西。
在java里就不要研究数组了呀,ArrayList多方便啊。