String类
- 字符串是常量,创建之后不可改变.
- 字符串字面值储存在字符串池中,可以被共享
import java.util.Arrays;
public class demo {
public static void main(String[] args) {
//1.length();返回字符串长度
String content = "JAVA是最好的编程语言,JAVA真香";
System.out.println(content.length());
//2.charAt(int);返回对应下标的字符
System.out.println(content.charAt(0));
System.out.println(content.charAt(content.length() - 1));
//3.contains(String);判断是否包含这个字符串
System.out.println(content.contains("JAVA"));
System.out.println(content.contains("php"));
//4.toCharArray();将字符串转换为字符数组。
char[] array = content.toCharArray();
System.out.println(array[1]);
System.out.println(Arrays.toString(content.toCharArray()));
//5.indexOf(String);第一次在数组(字符串)出现的位置
System.out.println(content.indexOf("JAVA"));
System.out.println(content.indexOf("JAVA", 2));//第几个字符开始查找
//6.lastIndexOf(String);最后一次在数组(字符串)出现的位置
System.out.println(content.lastIndexOf("JAVA"));
String content2 = " Hello World ";
//7.trim();去掉去后空格符
System.out.println(content2.trim());
//8.toUpperCase();将字符都转换为大写 toLowerCase()将字符都转换为小写
System.out.println(content2.toUpperCase());
System.out.println(content2.toLowerCase());
//9.endsWith(String str);判断是否以str这个字符串结尾.startsWith(String str);判断是否以str这个字符开始
System.out.println(content2.endsWith(" He"));
System.out.println(content2.startsWith(" He"));
//10.replace(String str1,String str2);讲字符串str1替换为字符串str2
System.out.println(content.replace("JAVA", "PHP"));
//11.将某个字符串拆分 返回值数组
String content3 = "java is the best programing language,java good";
String[] arr = content3.split("[ ,]+");//以空格或者","拆分
for (String string : arr) {
System.out.println(string);
}
String str1 = "this is a test";
String[] strings = str1.split(" ");//后面可以加上限制限制其变成几个字符串
for (String s : strings) {
System.out.println(s);
}
//补充equals(),compareTo();
//s1.equals(s2)判断s1是否与s2相等
String s1 = "hello";
String s2 = "HELLo";
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写比较
String s3 = "abc";//a:97
String s4 = "xyz";//x:120
String s5 = "abcxyz";
System.out.println(s3.compareTo(s4));//这种情况比第一个不同字符编码值,前者减后者
System.out.println(s3.compareTo(s5));//这种情况比长短,前者长度减后者长度
}
}
/*
1.length();返回字符串长度
2.charAt(int index);返回某个位置的字符
3.contains(String str);判断是否包含某个子符串
4.toCharArray();将字符串转成字符数组.
5.indexOf(String str);查找首次出现str的下标,存在返回下标,不存在,返回-1
6.lastIndexOf(String str);查找最后一次出现str的下标
7.trim();去掉字符串前后的空格
8.toUpperCase();将小写转换成大写 toLowerCase()
9.endsWith(String str);判断str是否以str结尾 StartsWith()
10.replace(char oldChar,char newChar);将旧字符串替换成新字符串
11.split(String str);将某个字符串拆分 返回值数组
*/
-
StringBuffer和StringBuilder
两者都可变长字符串,StringBuffer:运行效率较慢、但是线程安全;
StringBuilder:运行效率较快、但是线程不安全。
两者基本用法一样。
public class StrPlus { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); //1.append();追加 sb.append("java世界第一"); System.out.println(sb.getClass()); System.out.println(sb.toString()); System.out.println(sb); sb.append("java真香"); System.out.println(sb); //2.insert();添加 sb.insert(0,"我在最前面"); System.out.println(sb); //3.replace(); sb.replace(0,5,"hello");//含头不含尾,把这一块区域的值替换成新的 System.out.println(sb); //4.delete sb.delete(0,5); System.out.println(sb); } }
单线程使用StringBuilder
多线程使用StringBuffer