首页 > 试题广场 >

给出如下定义 String s = "story"; 下面的

[单选题]

给出如下定义

String s = "story";

下面的表达式中哪个是正确的?

  • s += "books";
  • char c = s[1];
  • int len = s.length;//没有()
  • String t = s.toLowerCase();
正确答案是AD啊!!!!!
选项A的String s = "story";  s指向常量池中的“story”,然后 s += "books",常量池就有2个常量“story”、“book”,然后在堆区新生成的“storybook”字符串对象,最后s指向“storybook” 字符串对象 的地址!!! String对象不可修改指的是“story”和“book”字符串不能修改!!!!
选项B:字符串根本就没有s[1]这种数组的写法,虽然底层是用私有char数组!

选项C:字符串没length这种属性,只有 s.length()方法 
选项D: s.toLowerCase()将生成一个字符串s的全小写字符的新的字符串,把地址给t
编辑于 2017-04-14 14:29:51 回复(0)
正确答案:D
A: String对象不可修改;
B: s为String类型,应该用s.charAt(i)访问单个字符;
C: 应该用s.length()获取String长度,数组长度用array.length获取
发表于 2017-04-13 04:09:05 回复(0)
这是java为啥标签是c++?
发表于 2017-04-14 18:56:33 回复(0)
我觉得哈 这个A是可以这样写的,我测了一下;B应该用charAt来取单个字符,C选项显然是不对的少了括号,D选项也是对的,单从语法角度我觉得AD都对

发表于 2017-04-13 17:08:29 回复(0)
D  toLowerCase() 将字符串内容改为小写
发表于 2017-04-13 16:54:47 回复(0)
C
发表于 2017-04-12 19:53:21 回复(0)