1. String的创建与转换
byte[] getBytes():把字符串转换为byte数组
char[] toCharArray():把字符串转换为char数组
String(byte[] bytes):把byte数组转换为字符串
String(char[] value):把char数组转换为字符串
如:
char[] c = new char[]{'a','b','c'};
// 把char[]数据转为String类型
String str = new String(c);
//把String转为char[]类型
char[] c1 = str.toCharArray();
// 把字符串转换为byte数组
byte[] b = str.getBytes();
//把byte数组转换为字符串
String str2 = new String(b);
2. 获取字符串信息
int length() 返回此字符串的长度
char charAt(int index) 返回指定索引处的 char 值
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。如果此字符串中没有这样的字符,则返回 -1
int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引
String str = "ABCDB";
// 获取字符串长度
int length = str.length();
System.out.println(length); // 5
// 返回指定索引处的char值
char c2 = str.charAt(2);
System.out.println(c2); //C
// 返回指定子字符串在此字符串中第一次出现处的索引
int firstIndex = str.indexOf('B');
System.out.println(firstIndex); // 1
//返回指定子字符串在此字符串中最右边出现处的索引
int lastIndex = str.lastIndexOf('B');
System.out.println(lastIndex); // 4
3. 字符串比较判断
boolean equals(Object anObject) 将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写
boolean contentEquals(CharSequence cs) 将此字符串与指定的 CharSequence 比较(和equals底层相同)
String str1 = "ABC";
String str2 = "abc";
System.out.println(str1.equals(str2)); // fasle
System.out.println(str1.equalsIgnoreCase(str2)); //true
System.out.println("ABC".contentEquals(str1)); // true contentEquals和equals底层相同
4. 字符串大小写转换
String toLowerCase():字符串大写转小写
String toUpperCase():字符串小写转大写
String str1 = "ABC";
String str2 = "abc";
System.out.println(str1.toLowerCase());
System.out.println(str2.toUpperCase());
5. 获取以hello开头的文件名的后缀名
/**
* 获取以hello开头的文件名的后缀名
*
* @param fileName:文件名
* @return fileSuffixName: 每个文件后缀名构建的数组
*/
public static List<String> getFileSuffix(String fileName) {
String[] getSingInfo = fileName.split(";");// 获取每一个文件名
List<String> fileSuffixName = new ArrayList<String>(); // 定义每个文件后缀名构建的数组
for (String name : getSingInfo) {
if (name.startsWith("hello")) {
int index = name.indexOf("."); // 获取点首次出现的索引
String suffixName = name.substring(index + 1); // 获取点后面所有字符串内容
fileSuffixName.add(suffixName);
}
}
return fileSuffixName;
}
6.把单词首字母大写
/**
* String练习2:把单词首字母大写
*
* @param str : 传入的字符串
* @return newStr: 首字母大写后的字符串
*/
public static String toInitialsUpCase(String str) {
char firstLetter = str.charAt(0); // 获取首字母
String backLetter = str.substring(1); // 首字母后面的内容
if (Character.isUpperCase(firstLetter)) {
return str;
}
String newStr = Character.toUpperCase(firstLetter) + backLetter;
return newStr;
}
7. 判断字符串是否非空
/**
* 判断字段穿是否为空,定义以下三种方式都为空
* String str = ""; 空字符串为空
* String str = " "; 空格为空
* String str = null; null为空
*
* @param str
* @return
*/
public static boolean isNull(String str) {
if (str == null || "".equals(str.trim())) {
return true;
}
return false;
}
注意: 在写if (str == null || "".equals(str.trim()))
这行代码时,一定要将 "".equals(str.trim())
常量""写在equals前面,如果将str变量写在equals前面,万一str是null,它将是一个空对象,无法调用equals方法,会抛出空指针异常。
String str = null;
System.out.println(str.equals("test"));
其实上面代码可以写成更加优雅的写法:
public static boolean isNull(String str) {
return str == null || "".equals(str.trim());
}