读书人

基础题求解解决方案

发布时间: 2012-01-15 22:57:49 作者: rapoo

基础题求解
如果定义String s=”example”,下面语句哪些会编译?(多选)
A s> > =2;
B int i = s.length();
C s+=3;
D char c= s[3];
E s= s + "abcd ";
我觉得答案是b,d,可是标准答案是b,c,e
所以来和大家讨论一下。

[解决办法]
C可以的,整数可以同String相加,这时先对整数调用Integer.toString()将其转换成String,再相加。

所以s+=3相当于s=s+3,执行完毕s的值为 "example3 "。
[解决办法]
b的话是B int i = s.length();返回的是int型的值
C的话:这里的 "+ "号如果是字符的话就直接在后面添加,是数字的话就是相加;
既然你知道E的答案的话应该和B一样的,这里的s= s + "abcd ";相当于s+=..
[解决办法]
D不行的,String对象不能用下标访问,用charAt(int index)
[解决办法]
> > 是数字移位符,s不是数字,所以不能进行这样的操作,A不对

length()是String类的方法,它返回此字符串的长度,所以B对

s+=3;即s=s+3; + 是java里面唯一的可以重载的运算符,它将非字符串值(在这里是3)转换为字符串,如果本身是字符串就不用转换了,然后把它们连接起来.所以C对

s是String对象它不是字符数组,要引用S的第三个元素,应该用charAt(int index)方法,所以d不对,

同样+当然可以把本来就是字符串的两个字符串连接起来,后一个将连接到前一个字符串后面.E对
[解决办法]
该说的楼上的都说了,顺便来JF

读书人网 >J2SE开发

热点推荐