String 类及其常用方法

一.字符串的构造

常见的三种:

1.常量串构造

String s="hello";

2.newString对象

String s=new String("hello");

3.使用字符数组

char[] arr={'h','e','l','l','o'};
String s=new String(arr);

4.注意事项

4.1 String是引用类型,内部并不存储字符串本身;

4.2 在Java中""中的也是String类型对象

二.String对象的比较方法

1.==比较

String s1=new String("sjhfow");
String s2=new String("wfwfw");
String s3=new String("wfwfw");
String s4=s1;
System.out.println(s1==s2); //false
System.out.println(s2==s3); //false
System.out.println(s1==s4); //true

2.boolean equals(Object anObject)方法

比较方式:两个是不是同一个对象 - > 检测anObject是否为String类型 - > 两个字符串的长度是否一致 - > 按照字典序(字符大小的顺序)比较。

String s1=new String("sjhfow");
String s2=new String("wfwfw");
String s3=new String("wfwfw");
System.out.println(s1.equals(s2));  //false
System.out.println(s2.equals(s3));  //true

3.int compareTo(String s)方法

比较方法:先按照字典序比较,如果出现不等的字符,直接返回这两个字符的大小差值 - > 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值。

String s1 = new String("abc");
String s2 = new String("ac");
String s3 = new String("abcdef");
System.out.println(s1.compareTo(s2));   // 不同输出字符差值-1
System.out.println(s1.compareTo(s3));   // 前k个字符完全相同,输出长度差值 -3
                                        //s1长度-s3长度

4.int compareToIgnoreCase(String str)方法

与compareTo相同但是忽略大小写

三.字符串查找

方法功能
char charAt(int index)返回index位置上字符,如果index为负数或者越界,抛出 IndexOutOfBoundsException异常
int indexOf(int ch)返回ch第一次出现的位置,没有返回-1
int indexOf(int ch, int fromIndex)从fromIndex位置开始找ch第一次出现的位置,没有返回-1
int indexOf(String str)返回str第一次出现的位置,没有返回-1
int indexOf(String str, int fromIndex)从fromIndex位置开始找str第一次出现的位置,没有返回-1
int lastIndexOf(int ch)从后往前找,返回ch第一次出现的位置,没有返回-1
int lastIndexOf(int ch, int fromIndex)从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返 回-1
int lastIndexOf(String str)从后往前找,返回str第一次出现的位置,没有返回-1
int lastIndexOf(String str, int fromIndex)从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返 回-1

四.转化

1.数值和字符串转化

//数字转字符串
String s = String.valueOf(1234);
//字符串转数字
int data1 = Integer.parseInt("1234");
double data2 = Double.parseDouble("12.34");

2.大小写转化

 String s1 = "hello";
String s2 = "HELLO";
// 小写转大写
System.out.println(s1.toUpperCase());
// 大写转小写
System.out.println(s2.toLowerCase());

3.字符串转数组

String s = "hello";
// 字符串转数组
char[] ch = s.toCharArray();
for (int i = 0; i < ch.length; i++) {
    System.out.print(ch[i]);
}
System.out.println();
// 数组转字符串
String s2 = new String(ch);
System.out.println(s2);

4.格式化 

String s = String.format("%d-%d-%d", 2024, 6, 1);
System.out.println(s);

五.字符串替换

方法功能
String replaceAll(String regex, String replacement)替换所有的指定内容
String replaceFirst(String regex, String replacement)替换收个内容

注意:由于字符串不可被修改,所以替换后是新产生了一个字符串。

六.字符串拆分

方法功能
String[] split(String regex)将字符串全部拆分
String[] split(String regex, int limit)将字符串以指定的格式,拆分为limit组

注意:

1. 字符"|","*","+"都得加上转义字符,前面加上"\\";

 2. 而如果是"\",那么就得写成"\\\\";

3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符。

七.字符串截取

方法功能
String substring(int beginIndex)从指定索引截取到结尾
String substring(int beginIndex, int endIndex)截取部分内容

注意:截取部分内容的方法是左闭右开。

方法功能
String trim()去掉字符串中的左右空格,保留中间空格

八.StringBuilder和StringBuffer

1.关于两者的常用方法

方法说明
StringBuff append(String str)在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、 double、float、int、long、Object、String、StringBuff的变量
char charAt(int index)获取index位置的字符
int length()获取字符串的长度
int capacity()获取底层保存字符串空间总的大小
void ensureCapacity(int mininmumCapacity)扩容
void setCharAt(int index, char ch)将index位置的字符设置为ch
int indexOf(String str)返回str第一次出现的位置
int indexOf(String str, int fromIndex)从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str)返回最后一次出现str的位置
int lastIndexOf(String str, int fromIndex)从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(int offset, String str)在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuffer deleteCharAt(int index)删除index位置字符
StringBuffer delete(int start, int end)删除[start, end)区间内的字符
StringBuffer replace(int start, int end, String str)将[start, end)位置的字符替换为str
String substring(int start)从start开始一直到末尾的字符以String的方式返回
String substring(int start,int end)将[start, end)范围内的字符以String的方式返回
StringBuffer reverse()反转字符串
String toString()将所有字符按照String的方式返回

2.注意

2.1 String的内容无法修改,而StringBuilder的内容可以修改;

2.2 String变为StringBuilder: 利用StringBuilder的构造方法或append()方法;

2.3 StringBuilder变为String: 调用toString()方法。

3.String、StringBuffer、StringBuilder的区别

3.1 String的内容不可修改,StringBuffer与StringBuilder的内容可以修改;

3.2 StringBuffer与StringBuilder大部分功能是相似的;

3.3 StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值