JAVA String常见问题

一、如何判断两个String是否相等,使用“==”还是使用“equals()”  

对String来说:

==是用来判断两个字符串(对象)的地址是否相同,即判断是否是同一个字符串的应用。

equals()则是判断两个字符串(对象)的是否相等,如果相等则返回true。

一般情况下,都是使用”equals()“来判断两个字符串的值是否相等,只有需要判断两个字符串是否是同一个对象时,才使用==


二、如何实现String与基本数据类型的装换

1、字符串转基本类型:

基本类型.parseXXX(String str)

基本类型.valueOf(String str)

2、基本类型转字符串:

String.valueOf(基本类型);

String str=基本类型+“”;

基本类型.toString(基本类型)


三、如何分割字符串

1、通过正则表达式分割

2、简单分割

str.split("分隔符")

注意:如果使用符号时,需加“\\”或“\”。


四、取子串

1、JAVA6

String str=str.subString str=str.subString(startIndex,endIndex+1)+"";

2、JAVA7

String str=str.subString(startIndex,endIndex+1);


五、如何将字符串转换日期

String str = "2014-6-27";


SimpleDateFormat format = new SimpleDateFormat();

format.applyPattern("yyyy-MM-dd");


Date date = format.parse(str);


六、String,StringBuilder,StringBuffer的区别

1、String与StringBuilder的区别:String是创建之后不可以再修改,StringBuilder是可变的,创建之后可以修改。

2、StringBuilder与StringBuffer的区别,StringBuffer是线程安全的,执行速度相对StringBuffer会慢一点。


七、让字符串重复出现

使用Apache Commons Lang的StringUtils,可以实现这一功能:

String str = "1234 ";

String repeated = StringUtils.repeat(str,3);//1234 1234 1234


八、如何计算指定字符在字符串里出现的次数

同样是使用Apache CommonsLang的StringUtils,如下:


int n = StringUtils.countMatches("aaaabbbb", "a");


九.在一些敏感信息上,为什么倾向用char[],而不是String

当String一旦创建,便不可再修改,直到gc将它回收,可gc的回收时间无法预测。即使一个对象不存在引用,也需要在未来的某个时间才会让给出回收。所以String操作敏感信息,有渗漏的风险。

可char[]就不一样了,我们可以通过程序直接控制其元素,一般敏感信息不再有用,直接将数组即可。因此更倾向使用char[]来保存密码等敏感信息。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值