首页 > 代码库 > Java 字符串 (常用)
Java 字符串 (常用)
字符串
概念
String s1 = "abc"; //s1是一个类类型变量,"abc"是一个对象
//字符串最大特点,一旦被初始化就不能被改变,再次赋值是指新new一个对象
//在内存中有一个对象
String s2 = new String("abc"); //在内存中有两个对象
s1 == s2 //false //判断的是地址
s1.equals(s2) //true //判断的是值 //String重新定义.equals()方法
//(equals()在其他地方判断的是地址)
String s3 = "abc";
s1 == s3; //true //因为在前面已经定义好了s1="abc"常量,所以s3指向s1所定义的"abc"以节省空间
方法
获取
int length() //获取长度,返回int
char charAt(int index) //根据位置返回位置上某字符
int indexOf(int ch) //返回ch(ASCII码)第一次出现ch的位置,若无则返回 -1
int indexOf(int ch, int fromIndex) //从 fromIndex指定位置开始,第一次出现ch的位置
int indexOf(String str) //返回str在字符串中第一次出现的位置
int indexOf(String str, int fromIndex) //指定位置开始第一次出现的位置
int lastIndexOf(int ch) //返回ch在字符串中最后一次出现的位置
判断
boolean contains(str) //判断字符串中是否包含某子串
int indexOf(str) //返回str第一次出现的位置,若无返回-1
boolean isEmpty() //判断字符长度是否为0
boolean startsWith(str) //判断字符串是否以str开头
boolean endWith(str) //判断字符串是否以str结尾
boolean equals(str) //判断字符串内容是否相同,复写了Object类中的equals方法
boolean equalsIgnoreCase() //判断内容是否相同,忽略大小写
对字符串进行自然顺序的比较
int compareTo(string); //相同返回0,不同返回第一个不同值的(ASCII码)的差距
转换
static String valueOf(char[]) //将字符数组转换成字符串
static String valueOf(int) //将基本类型转换为字符串,等同于 3+"";
String toUpperCase(); //字符串转换为大写
String toLowerCase(); //字符串转换为小写
byte[] getBytes() //将字符串转换为字节数组
替换:
String replace(oldchar,newchar) //返回新字符串
切割
String[] split(regex); //将字符串以regex为分割点分割,返回字符串数组子串,获取字符串中的一部分
String substring(begin); //从指定位置开始到结尾,如果角标不存在,会出现字符串越界
String substring(begin,end); //包含头,不包含尾
去除两端空格
String trim();
字符串缓冲区StringBuffer
//JDK1.5后出现 StringBuilder
StringBuffer //线程同步 ,安全性高
StringBuilder //线程不同步,效率高,单线程推荐
特点
长度是可变的
最终会通过toString方法变成字符串
可以直接操作多个数据类型
StringBuffer sb = new StringBuffer(); //定义对象
StringBuilder sb = new StringBuilder(); //定义对象
方法
增加
sb.append(abc); //将数据添加至已有数据末尾
sb.insert(1,"qq"); //将数据插入到指定位置(第一个参数)
StringBuffer sb = new StringBuffer("aaaaaaa");
sb.insert(3, bbb); //将字符串变为aaaabbbaaa
sb.append(x) == sb.insert(sb.length(), x)
删除
sb.delete(start, end) //删除缓冲区中的数据,包含start,不包含end
sb.deleteCharAt(index); //删除指定位置的字符
获取
char charAt(int index) //获取指定位置字符
int indexOf(String str) //返回指定字符串第一次出现的位置
int lastIndexOf(String str) //返回指定字符串最后一次出现的位置
int length(); //返回字符串长度
String substring(int start, int end) //返回开始角标到结束角标之间的字符串
修改
sb.replace(start,end,string); //将开始位置到结束位置之间的值替换为string
sb.setCharAt(int index,char ch); //将index位置的字符替换为ch
反转
sb.reverse();
将缓冲区中指定数据储存到指定数组中
sb.getChars(1,3,char[] chs,4); //将缓冲区中角标为 1和2的数据储存到数组chs中,在数组中角标为4开始储存
输出
System.out.println(sb.toString); //输出前需要先转化为String类型
StringBuilder sb //一个可变的字符序列。
方法
增加
StringBuilder append(Object obj) //追加 Object 参数的字符串表示形式。
StringBuilder insert(int offset, Object obj) 将 Object 参数的字符串表示形式插入此字符序列中。
删除
StringBuilder deleteCharAt(int index) //移除此序列指定位置上的 char。
修改
void ensureCapacity(int minimumCapacity) // 确保容量至少等于指定的最小值。
StringBuilder reverse() //反转
void setCharAt(int index, char ch) //将给定索引处的字符设置为 ch。
查询
int capacity() //返回当前容量。
char charAt(int index) //返回此序列中指定索引处的 char 值。
StringBuilder delete(int start, int end) //移除此序列的子字符串中的字符。
int indexOf(String str) // 返回第一次出现的指定子字符串在该字符串中的索引。
int length() // 返回长度(字符数)。
String substring(int start) //返回一个新的 String,它包含此字符序列当前所包含字符的子序列。
Java 字符串 (常用)