A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 垂天云 高级黑马   /  2013-9-5 09:15  /  1299 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 垂天云 于 2013-9-5 10:22 编辑

  1. <P>class StringMethodDemo
  2. {
  3.         public static void main(String[] args)
  4.        {
  5.           method_trans();</P>
  6. <P>         }</P>
  7. <P>      public static void method_trans()
  8.       {
  9.          char[] arr = {'a','b','c','d','e','f'};
  10.          String s = new String(arr,2,3);//为什么取两个字符,可是打印结果却多加了个字符呢?
  11.          sop("s="+s);
  12.         }</P>
  13. <P>}</P>
  14. <P> </P>
复制代码
以上的代码,我只打印了两个字符变成字符串,可是打印的结果是cde??求解?

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览

还有你方法名建议别加"_" 多个单词的话,第一个单词小写 其它单词开头字母大写

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1 赞一个!

查看全部评分

回复 使用道具 举报
兄弟 我调试了一下 你看看 是不是编译器的问题



回复 使用道具 举报
new String(arr,2,3);这句有问题,你如果只想取两个2个字符的话应该是new String(arr,2,2);
这个方法中第二个参数是从哪开始取,第三个参数是取几个,你第三个参数传的是3,打印结果当然是3个字符了!
回复 使用道具 举报
创建String对象,你那个的意思,传递的是arr数组,从角标为二的开始,往后取出三个字符,不是取出角标从2到3的,所有输出的是cde
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马