String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能有子类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间,常用的方法如下:
- 替换字符串:str.replace(char old ,char new) 将old用new替代
- 比较:str.equals(Object obj) 比较两对象
- 获取字符串长度:str.length()
- 大小写转换:str.toLowerCase() 将字符串内的字符改写成小写,str.toUpperCase() 将字符串内的字符改写成大写
- 截取字符串:str.substring(int1,int2) 取出字符串内第int1位置到int2的字符串
- 转数组:str.split(regex) regex是分隔符
- 去除首尾空格:str.trim()
工具类常用方法:
1、字符串非空判断
public static final boolean isNotBlank(final String str){
return (str != null && !"".equals(str));
}
public static final boolean isBlank(final String str){
return !isNotBlank(str);
}
2、判断字符串是否只由数字和字母组成
public static boolean getLetterAndNum(final String value){
if (value.matches("[0-9a-zA-Z]*")){
return true;
}
return false;
}
3、对象转String
public static String toString(Object str){
return isEmpty(str) ? "" : String.valueOf(str);
}
4、判断sub在str中出现的次数
public static int countOccurrencesOf(String str, String sub) {
if (isBlank(str) || isBlank(sub)) {
return 0;
}
int count = 0;
int pos = 0;
int idx;
while ((idx = str.indexOf(sub, pos)) != -1) {
++count;
pos = idx + sub.length();
}
return count;
}
String、StringBuffer、StringBuiler的区别:String是不可变字符串,StringBuffer和StringBuilder是长度可变的字符串,区别是前者是线程安全的,后者是线程不安全的,同样后者的效率也会更高。