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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵龙 中级黑马   /  2016-9-23 09:28  /  1140 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵龙 于 2016-9-23 09:34 编辑

android研发中对String思考
http://blog.csdn.net/zl18603543572/article/details/52614585


121212.png (99.33 KB, 下载次数: 27)

内容详情

内容详情

5 个回复

倒序浏览
为什么帖子中 显示不出来 我添加的链接  ?
回复 使用道具 举报
我什么也看不到,除了一个标题
回复 使用道具 举报
煮酒拭剑赏美人 发表于 2016-9-23 09:32
我什么也看不到,除了一个标题

修改了一下 可以显示出来了
{:2_30:}
http://blog.csdn.net/zl18603543572/article/details/52614585
回复 使用道具 举报
是点代码方法出来就更加好了
回复 使用道具 举报
3.18 将String 中的部分字符复制到指定的字符数组中去
[Java] 纯文本查看 复制代码
        String text1  ="ABCDEF";
        //目标字符数组 
        char[] chars = new char[10];
        //拷贝
        text1.getChars(0,text1.length(),chars,0);
        //参数一 参数二  拷贝String中字符的范围
        //参数三  目标字符数组
        //参数四  目标字符数组中的存储起始位置


从源码角度来看

[Java] 纯文本查看 复制代码
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
            if (srcBegin < 0) {
                throw new StringIndexOutOfBoundsException(srcBegin);
            }
            if (srcEnd > value.length) {
                throw new StringIndexOutOfBoundsException(srcEnd);
            }
            if (srcBegin > srcEnd) {
                throw new StringIndexOutOfBoundsException(srcEnd - srcBegin);
            }
            System.arraycopy(value, srcBegin, dst, dstBegin, srcEnd - srcBegin);
        }


其直接调用 System 的拷贝数组的方法将数据拷贝

[Java] 纯文本查看 复制代码
public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);



对于System的arraycopy方法来说,其直接调用 JNI层方法实现

        在上述调用 System的arraycopy方法的时候 传入参数
                参数一  (value)父级String对应的字符数组
                参数二  (srcBegin)父级String开始拷贝数据的起始位置
                参数三  (dst)   目标数组
                参数四  (dstBegin) 目标数组存储数据的起始位置
                参数五  (srcEnd - srcBegin) 截取父String中字符的长度
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马