一、如何判断两个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[]来保存密码等敏感信息。