下面整理了JavaSE部分字符串的一些常用的方法:
字符串是一个引用类型,字符串是不可变对象,一旦创建赋值,它的值就不能载发生变化,这些方法不修改原来的字符串,只是生成了一个新的字符串。如果需要改变字符串的话,可以使用StringBuilder或者是StringBuffer,它里面也有一些方法供我们使用,以及String和StringBuilder如何互相转化。下面代码演示:
public class Main {
public static void main(String[] args) {
//创建字符串常量,字符串是不可变对象,一旦赋值就不能再改变
//String提供的操作字符串的方法只是进行了拷贝
//对原来的字符串内容是不会产生影响的
//1、intern()方法:在常见字符串常量时,先会去字符串常量池中寻找,看看当前这个字符串是否在池中存在
// 存在的话,就会舍弃当前对象,直接获取到池中的对应对象的引用
// 不存在的话,就把这个字符串入池
String str1="hehe";
String str2=new String("hehe").intern();
String str3="HEHE";
System.out.println(str1==str2);//true说明str1和str2这两个引用,指向的是同一个对象
//2、将字符串转化为字符数组
char[] charArray=str1.toCharArray();
//3、将字符串转化为字节数组
byte[] bytes=str1.getBytes();
//获取某个下标所对应的字符
char c=str1.charAt(0);
//获取字符串的长度
int length=str1.length();
//字符串查找(某个字符串中是否包含参数字符串)
boolean isContain=str1.contains("he");
//字符串比较是否相等
//不忽略大小写
System.out.println(str1.equals(str3));
//忽略大小写
System.out.println(str1.equalsIgnoreCase(str3));
//字符串比较大小
//str1>str2 返回大于0的整数
//str1<str2 返回小于0的整数
//str1==str2 返回0
System.out.println(str1.compareTo(str3));
//查找子字符串,从左向右
// 1、判断是否包含子字符串
// 2、返回子串所在的下标位置(开始位置)
// 如果包含多组子串,返回最左侧子串的下标
int index=str1.indexOf("he");
//从右向左
int index1=str1.lastIndexOf("he");
//是否以指定字串开头
boolean b1=str1.startsWith("h");
//是否以指定字串结尾
boolean b2=str1.startsWith("e");
//字符串替换(不修改原来的字符串,生成一个新的子字符串)
str1.replace("he","ha");
//字符串拆分,例子是以空格分
String str4="I love you";
String[] strings=str1.split(" ");
//字符串截取(从指定索引开始到末尾)
String str5=str1.substring(1);
//从beginIndex到endIndex,左闭右开区间
String str6=str1.substring(0,2);
//去掉字符串左右空格g
String str7=" hello ";
System.out.println(str7.trim());
//大小写转化
//小写转大写
System.out.println(str1.toUpperCase());
//大写转小写
System.out.println(str3.toLowerCase());
//判断当前字符串是否为空
System.out.println(str1.isEmpty());
}
}
public class Main1 {
public static void main(String[] args) {
//StringBuilder和StringBuffer的区别:
// StringBuilder线程不安全
// StringBuffer线程安全(通过加锁的方式来保证线程安全)
StringBuilder str=new StringBuilder("hehe");
StringBuffer str1=new StringBuffer("haha");
//在字符串后追加字符串
System.out.println(str.append("haha"));
//反转字符串
System.out.println(str.reverse());
//删除字符串中的指定范围(前闭后开)
System.out.println(str.delete(0, 2));
//在offset后插入指定的数据(这个数据可以是各种数据类型)
System.out.println(str.insert(0, 2));
System.out.println(str.insert(1, "heihei"));
System.out.println(str.insert(2, true));
System.out.println(str.insert(3, 's'));
}
}
互转:
//将String转成StringBuilder
String str2="hello";
StringBuilder sb=new StringBuilder(str2);
System.out.println(sb);
sb.append("world");
//将StringBuilder转成String
String str3=sb.toString();
System.out.println(str3);