字符串和数组使用时该注意的一些地方

String 类型的初始化的三种常见手法:

1、使用new 关键字的话,就可以直接在构造函数中传入String类型的参数,例如:String name = new String("Name");

2、也还可以以char[]类型的参数对构造函数的形参赋值,例如:char[] te = {'a','a','b'};String s = new String(ch);

3、也还可以使用byte[]数组 实现String构造函数的初始化,其中byte的类型就是以一个一个字节数据类型的大小范围内赋值。其值在0~255之间变化,其中每两个字节数据类型组成一个汉字,比如-61和-26就组成“面”这个字,当然这是根据具体的中文编码类型来判断一个汉字是占用几个字节。具体请查看GB2312和GBK 以及UTF-8 对中文进行编码的细则

4、还可以对char 类型的数组中从某个元素起开始取值到从这个元素开始去多少个字符;同理对byte类型的数组也同样适合。

例如:char[] te = {'a','a','b'}; String s = new String(ch,0,3);s 的结果值为:aab

但是有一点需注意:结束的值不能超过数组类型的长度;也即 offset+length < 字符数组.length

如果超过了字符数组的长度,这个时候编译不会报错,这是因为在编译阶段,编译器只检查语义和语法上的错误。但运行结果让人出乎意料的:此时会出现StringIndexOutOfBoundsException异常。这一点切记!这也是在开发中通常隐藏的比较深的一类错误,即运行期的错误,也叫逻辑上的错误。这类错误一般是比较难查找的,所以要求我们每位程序员在编代码的时候格外小心,的注意安全呀!

转载于:https://www.cnblogs.com/pbting/p/4858304.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值