String相关api
截取包含from下标,不包含end下标的数据
subString(from,end);
截取从from 下标开始的内容
subString(from);
转换数据类型从字符串为int类型,要求此字符串必须内容为数字
Integer.valueOf(String str);
trim();去除字符串左右两边的空格
charAt();通过下标获取相应位置的字符
split();对字符串使用指定的字符进行分割,得到一个数组
startsWith();判断字符串前缀部分的内容
endsWith();判断字符串后缀部分的内容
toUpperCase() toLowerCase()大小写转换
toCharArray();把字符串转换为大小为字符串长度的char数组
new String(b, 2, 1);获取从下标2开始的长度为1的字符串部分
对两个字符串进行比对,从第一位开始比对相应的asc码值,如果相同,
继续比对下一位,如果不同,将范围差值,如果其中一个完全包含另一个,
那么将会返回个数的差值
str1.compareTo(str2);
copyValueOf();通过调用new String()方法对数组类型进行转换,转换为string类型的新数据
下面的fromindex都是包含的检索内容
indexOf(str,fromindex);从下标为fromindex的字符开始正序检索
lastIndexOf(str,fromindex);从下标为fromindex的字符开始倒序检索
isEmpty();判断当前字符串是否为空,根据长度判断
replace(String oldStr,String newStr);//匹配完全相同的字符串
repalceAll(String regex,String newSTR);//可以根据正则进行批量的匹配替换
StringBuffer和StringBuilder
sb.append();
sb.delete(int fromIndex,int toIndex);//删除的下标不包含toIndex
sb.insert(int index,String content);//在指定的下标位置插入内容
区别:
StringBuffer是线程安全的,效率稍低
StringBuilder是线程不安全的,效率高
String是最终类,进行修改操作时会生成多个对象,而StringBuffer和
StringBuilder不会生成多个对象
public class StringApi {
public static void main(String[] args) {
String str = "hello java";
//1、字符串截取
// str = str.substring(0, 5);
// System.out.println(str);
str = str.substring(3);
System.out.println(str);
// 2、格式转换
str = "12345";
int strInt = Integer.valueOf(str);
System.out.println(strInt);
// 3、trim()
str = " 123 abc 222 ";
System.out.println("开始长度:"+str.length());
str = str.trim();
System.out.println("去空格后长度:"+str.length());
System.out.println(str);
// 4、charAt()
str = "Hello woniuxy";
// char c = str.charAt(0);
// System.out.println(c);
for (int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
}
// 5、split
str = "1990-11-12";
String[] strs = str.split("-");
System.out.println(strs[0]+"年"+strs[1]+"月"+strs[2]+"日");
// 6、startWith() endsWith
str = "startend";
boolean isHello = str.startsWith("start");
System.out.println(isHello);
boolean isEnd = str.endsWith("end");
System.out.println(isEnd);
// 7、toUpperCase toLowerCase
str = "abABcd";
str = str.toUpperCase();
System.out.println("abcd大写为:"+str);
String lowerStr = str.toLowerCase();
System.out.println(lowerStr);
// 8、valueOf()
// Integer.valueOf(s);
double d = Double.valueOf("10.2");
System.out.println(d);
// 9、toCharArray()
str = "abcd";
char[] cs = str.toCharArray();
System.out.println("字符数组大小:"+cs.length);
for (char c : cs) {
System.out.println(c);
}
// 10、getBytes()
str = "abcd123";
byte[] b = str.getBytes();
for (byte c : b) {
System.out.println(c);
}
// 11、new String()
String strGetByte = new String(b);
System.out.println(strGetByte);
String newStr = new String(b, 2, 1);
System.out.println(newStr);
// 12、compareTo
String str1 = "abadez";
String str2 = "aba);";
System.out.println(str1.compareTo(str2));
// 13、equals
str1 = "abCde";
str2 = "abcde";
System.out.println(str1.equals(str2));
System.out.println("忽略大小写:"+str1.equalsIgnoreCase(str2));
// 14、concat
str1 = "hello";
str2 = " java";
String cocatStr = str1.concat(str2);
System.out.println(cocatStr);
// 15、copyValueOf()
char[] css = new char[str1.length()];
css[0] = 'a';
css[1] = 'b';
css[2] = 'c';
String newstr = String.copyValueOf(css);
System.out.println(newstr);
// indexOf
str = "abcd abcd";
int index = str.indexOf("c");
System.out.println(index);
index = str.lastIndexOf("c");
System.out.println(index);
System.out.println(str.indexOf("c", 4));
System.out.println(str.lastIndexOf("c", 2));
// isEmpty
str = " ";
System.out.println(str.isEmpty());
// replace
str = "hello java";
str = str.replace("java", "android");
System.out.println(str);
str = str.replace("l", "m");
System.out.println(str);
str2 = "你好,蜗牛学院";
System.out.println(str2.indexOf("学院",6));
}