StringBuffer:线程安全
StringBuilder:非线程安全,工作中多使用这个,因为效率更高。
1. String常用方法:
方法 | 含义 |
length | 长度 |
charAt | 返回某一个字段 |
startWidth | 以XXX开始 |
contains | 包含 |
endwidth | 以XXX结束 |
toLowerCase | 转小写 |
toUpperCase | 转大写 |
replace | 替换第一个 |
replaceAll | 替换所有 |
Trim | 去掉前后的空格 |
equals | 相等 |
equalsIgnoreCase | 不区分大小写相等 |
2. 判断一个字符是否为中文:
// 判断一个字符是否为中文
public static boolean isChineseChar(char ch){
try {
return String.valueOf(ch).getBytes("GBK").length > 1;
} catch (Exception e) {
}
return false;
}
String str = "我是Ac3";
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; ++i){
System.out.println(chs[i] + " - " + isChineseChar(chs[i]));
}
输出:
我 - true
是 - true
A - false
c - false
3 - false
去空格:
Trim去掉首尾的空格,去掉所有空格如下:
// 去空格
public static String removeEmpty(String srcString){
return srcString.replaceAll("\\s*", "");
}
System.out.println(removeEmpty(" I love you "));
3. 字串反转
// 字串反转
public static String stringReverse(String srcString){
StringBuilder sBuilder = new StringBuilder(srcString);
return sBuilder.reverse().toString();
}
System.out.println(stringReverse("abcd"));
输出:dcba
4. 数组反转
// 数组反转
public static String arrayReverse(String srcString){
String[] strings = srcString.split(" ");
List<String> words = Arrays.asList(strings);
Collections.reverse(words);
StringBuffer desBuffer = new StringBuffer();
for (String word : words){
desBuffer.append(word + " ");
}
String desString = desBuffer.toString();
return desString.trim();
}
System.out.println(arrayReverse("I am a boy"));
输出:boy a am I
5. 获取文件名和后缀名
public static boolean isEmpty(String str){
if ((str == null) || ("".equals(str))){
return true;
}else{
return false;
}
}
// 获取文件名
public static String getFileName(String path){
if (isEmpty(path)){
return path;
}
return path.substring(path.lastIndexOf("/")+1, path.lastIndexOf("."));
}
// 获取文件后缀名
public static String getExt(String fileName){
if (isEmpty(fileName)){
return fileName;
}
return fileName.substring(fileName.lastIndexOf(".") + 1);
}