String
正则表达式
- string类型在字符串改变、和字符串连加时性能差
- Stringbuffer 和StringBuilder连加性能极高
- Stringbuffer为线程安全的类 StringBuilder为非线程安全的类
Stringbuffer 的用法
public static void main(String[] args) {
// StringBuilder用法 比Stringbuffer 更变态
String str = "abc";
long startTime = System.currentTimeMillis();
for (int i = 0; i < 30000; i++) {
str += "abc";
}
long endTime = System.currentTimeMillis();
System.out.println("the end, time:" + (endTime - startTime));
}
StringBuilder用法 比Stringbuffer 更快
public static void main(String[] args) {
// StringBuilder用法 比Stringbuffer 更变态
StringBuilder str = new StringBuilder("abc");
long startTime = System.currentTimeMillis();
for (int i = 0; i < 110000000; i++) {
str.append("acv");
}
long endTime = System.currentTimeMillis();
System.out.println("the end, time:" + (endTime - startTime));
}
charAt 用法(返回指定索引处的 char 值) 输出为:c
public static void main(String[] args) {
String str = "abc";
System.out.println(str.charAt(2));
}
codepointAt 用法(返回指定索引处的字符(Unicode 代码点))输出为 97
public static void main(String[] args) {
String str = "abc";
System.out.println(str.codePointAt(0));
}
compareTo 用法(按字典顺序比较两个字符串。返回的是 正整数或负整数)
compareToIgnoreCase不区分大小写比较和compareTo相同
==IgnoreCase是指不区分大小写 在很多地方都有用==
public static void main(String[] args) {
String Str = "abc";
String str = "bcd";
System.out.println(str.compareTo(Str));
}
concat用法将指定字符串连接到此字符串的结尾。
public static void main(String[] args) {
String str = "abc";
String str1 = str.concat("xyz");
System.out.println(str1);
}
contains用法(当且仅当此字符串包含指定的 char 值序列时,返回 true。)
public static void main(String[] args) {
String str = "我贩卖枪支弹药";
System.out.println(str.contains("枪支"));
}
endsWith 测试此字符串是否以指定的后缀结束
public static void main(String[] args) {
String str = "www.google.com";
System.out.println(str.endsWith("com"));
}
startsWith测试此字符串是否以指定的前缀开始
public static void main(String[] args) {
String str = "www.google.com";
System.out.println(str.startsWith("www"));
}
equals将此字符串与指定的对象比较。
equalsIgnoreCase将此 String 与另一个 String 比较,不考虑大小写(==IgnoreCase再次出现==)
public static void main(String[] args) {
String str = "abc";
String str1 = "Abc";
System.out.println(str.equals(str1));
System.out.println(str.equalsIgnoreCase(str1));
}
indexOf返回指定字符在此字符串中首次出现处的索引。lastIndexOf返回指定字符在此字符串中最后出现处的索引
public static void main(String[] args) {
String str = "abcba";
System.out.println(str.indexOf("a"));
System.out.println(str.lastIndexOf("a"));
}
length()返回字符串的长度,
isEmpty 当且仅当 length() 为 0 时返回 true,结果为 5 和 true
public static void main(String[] args) {
String str = "abcba";
System.out.println(str.length());//str长度为5
System.out.println("".isEmpty());//""空字符串调用isEmpty返回为true
}
replaace使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
public static void main(String[] args) {
String str = "fuck you";
System.out.println(str.replace("fuck", "f***"));
}
split 根据字符来分割字符串,结果为数组
public static void main(String[] args) {
String name = "tom,jock,rose,lili";
String[] names = name.split(",");
for (String na : names) {
System.out.print(na+"\t");
}
}
运行结果为:tom jock rose lili
subString 截取字符串
public static void main(String[] args) {
String email = "[email protected]";
String name= email.substring(0, email.indexOf("@"));
System.out.println(name);
}
运行结果为 lilei
toLowerCase将此 String 中的所有字符都转换为小写。
toUpperCase将此 String 中的所有字符都转换为大写
public static void main(String[] args) {
String str = "Abc";
System.out.println(str.toLowerCase());
System.out.println(str.toLowerCase());
}
运行结果为 abc
运行结果为 ABC
trim 返回字符串的副本,忽略前导空白和尾部空白。
public static void main(String[] args) {
String name = " jock ";
System.out.println(name.trim());
}
运行结果为 jock