比较JAVA和C++里面的字符串,字符数组? test()中的char a[]={'1','2'};是局部变量, 全局变量未初始化 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己又定义了一个同名局部变量把前面那个变量的作用域覆盖了char a[];test(){ a={'1','2'};}这样不会有问题... sorry弄错了a = new char[]{'1','2'};应该这样不过你要想得到你要的结果还要:System.out.println(new String(new test1().a) +new String("3333")); 如果想显示一个字符串,那么就把你脑子里c语言的字符数组给扔掉吧,记住String即可,它把C里面人工对char[]的操作都封装起来了 to regiester:char a[];test(){ a={'1','2'};}我觉得这样挺合语法的呀,给字符数组分配数据书上不就是这样写的吗?你第二次说这样写:a = new char[]{'1','2'};为什么要这样写? a={'1','2'};a = new char[]{'1','2'};效果相同,我的意思是如果想显示12的话,直接用String s = "12", 不要用char[] char a = {'1','2'};这个只能这样用char a;a = new char[]{'1','2'};这个需要这样看明白了吧:D toshine333:你说得对,但有时候我却只能用字符数组,比如做IO流相关的程序时,你要接收字节或字符时,你需要用bye[],char[],来储蓄,用String还行吗?你说a={'1','2'}与a=new char[]{'1','2'}是一样?我使用test(){ a={'1','2'};}时,并且编译后,编译器报错如下:C:\Documents and Settings\Administrator\桌面\test1.java:5: illegal start of expression a={'1','2'}; ^1 errorTool completed with exit code 1看来,关于字符数组的使用还是有些疑问? to register:你的写法a=new char[]{'1','2'},这样写很对!只有这样才能给字符数组赋值,为什么要这样做呢?给字符数组赋值还有哪些办法呢?谢谢你! char a = {'1','2'}; 只能在声明变量的同时使用a=new char[]{'1','2'}; 可以在任何时候使用 public class Test3 {char a[];Test3(){ a=new char[]{'1','2'};}public static void main(String args[]){System.out.println(new Test3().a +new String("3333"));}}结果如下:[C@18586103333看来输出的仍旧是a字符数组的地址 大概有两个问题:一、char[]是对象,所以a指向的是对象实例,new Test3().a +new String("3333")也就等价于new Test3().a.toString() +new String("3333"),打出乱码不足为奇;二、退回来说,new Test3().a不是一个静态变量,按理说不能在main里面使用,至于为什么不报错,我就不清楚了! swing中setTitle的用法 40分,简单问题---关于抽象类引用 悬赏!!!java反编译高手在哪里? 再问改变鼠标形状问题!! 如何编写java程序统计java代码包含多少类、多少方法,多少逻辑行 好久没来拉,春节回家,散尽所有分!祝大家春节快乐! 散分帖2 怎么得到系统信息? classpath设置上的怪问题????? 各位好,WebLogic6.1下面怎么配置JMS? 哪位大虾给个要点?谢谢! sql问题!!! JAVA中那个函数有和VC++中sleep()一样的功能的?多谢了! Appplet编程问题?
test(){
a={'1','2'};
}
这样不会有问题...
a = new char[]{'1','2'};
应该这样
不过你要想得到你要的结果还要:
System.out.println(new String(new test1().a) +new String("3333"));
它把C里面人工对char[]的操作都封装起来了
char a[];
test(){
a={'1','2'};
}
我觉得这样挺合语法的呀,给字符数组分配数据书上不就是这样写的吗?
你第二次说这样写:
a = new char[]{'1','2'};为什么要这样写?
a = new char[]{'1','2'};效果相同,我的意思是如果想显示12的话,直接用String s = "12", 不要用char[]
这个只能这样用
char a;
a = new char[]{'1','2'};
这个需要这样
看明白了吧:D
你说得对,但有时候我却只能用字符数组,比如做IO流相关的程序时,你要接收字节或字符时,你需要用bye[],char[],来储蓄,用String还行吗?
你说a={'1','2'}与a=new char[]{'1','2'}是一样?
我使用test(){
a={'1','2'};
}
时,并且编译后,编译器报错如下:C:\Documents and Settings\Administrator\桌面\test1.java:5: illegal start of expression
a={'1','2'};
^
1 errorTool completed with exit code 1
看来,关于字符数组的使用还是有些疑问?
你的写法a=new char[]{'1','2'},这样写很对!只有这样才能给字符数组赋值,为什么要这样做呢?
给字符数组赋值还有哪些办法呢?谢谢你!
a=new char[]{'1','2'}; 可以在任何时候使用
char a[];
Test3(){ a=new char[]{'1','2'};
}
public static void main(String args[]){System.out.println(new Test3().a +new String("3333"));
}}结果如下:[C@18586103333
看来输出的仍旧是a字符数组的地址
一、char[]是对象,所以a指向的是对象实例,new Test3().a +new String("3333")也就等价于new Test3().a.toString() +new String("3333"),打出乱码不足为奇;
二、退回来说,new Test3().a不是一个静态变量,按理说不能在main里面使用,至于为什么不报错,我就不清楚了!