Java常用类——String、StringBuffer、StringBuilder

String类

字符串的创建

字符串存放在公共的存储池中,字符串变量指向存储池中相应的位置。如果复制一个字符串变量,原始字符串和复制的字符串共享相同的字符串。Java的设计者认为共享带来的高效率渊源胜过于提取子串、拼接字符串带来的低效率

/*
"123"这个字面常量会存储在方法区中的字符串常量池中,栈中的s1会存储这个字面常量的引用。
若常量池中已有这个字符串,则直接返回这个字符串的引用
*/
String s1 = "123";/*
JVM会在常量池中创建一个"abc",在堆创建一个String对象,且会有一个引用类型的变量指向常量池中
的"abc"。
*/
String s2 = new String("abc")	
字符串的常用方法

字符串的拼接

String subString(int beginIndex);				//返回一个从beginIndex处开始的子字符串

String subString(int beginIndex,int length)		//返回一个从beginIndex处开始、长度为length的子字符串

String subString(int beginIndex,int endIndex);	//返回一个从beginIndex开始到endIndex - 1处的子字符串

String concat(String str);						//返回将两个字符串连接起来的字符串

static String join(CharSequence delimiter, CharSequence... elements);	//将多个字符串放在一起,并用一个界定符分隔。

String repeat(int num);							//将字符串重复num次

检测字符串是否相等

boolean equals(String str);						//判断字符串是否相等,比较的是字符串的内容而不是引用是否相等,千万不要使用==比较字符串是否相等,因为这个运算符只能确定两个字符串是否存放在同一个位置。

boolean equalsIngoreCase(String str);			//忽略字母大小进行比较

空串和null串

判空操作可以使用str.isEmpty()或者str.length==0,判断是不是null串直接使用str == null。

boolean isEmpty();								//判空

其他方法

int length();								//返回字符串的长度

char charAt(int index);						//返回指定下标处的字符

int indexOf(String str);					//返回str在字符串中首次出现的的下标

int lastIndexOf(String str);				//返回str在字符串中最后一次出现的的下标

int compareTo(String str);					//若字符串与str相等,返回0;大于str,返回1;小于str,返回-1。

-----------------------------------------------------------------------------------------------------------

boolean contains(String str);					//判断字符串是否包含str

boolean endsWith(String str);					//判断字符串是否以str结尾

boolean startWith(String str)l					//判断字符串是否以str开始

-----------------------------------------------------------------------------------------------------------
    
char[] toCharArray();							//将字符串转换成字符数组

byte[] getBytes();								//根据所使用的编码集,将字符串转换成byte数组

String toUpperCase();							//将字符串中的字母全部转换成大写

String toLowerCase();							//将字符串中的字母全部转换成小写

String replace(char oldChar,char newChar);		//将字符串中的所有oldChar字符全部替换为newChar字符

-----------------------------------------------------------------------------------------------------------

String[] split(String str);						//根据str将字符串拆分

String trim();									//去掉字符串的前后空格

StringBuilder和StringBuffer

String类型的字符串一经创建后不可以改变,而StringBuilder和StringBuffer类型的字符串可以改变

在这里插入图片描述

在不考虑线程安全的情况下尽量使用StringBuilder

常用方法
//StringBuilder和StringBuffer的用法基本相同

StringBuilder append(String str);					//将str追加到字符序列的结尾处

StringBuilder reverse();							//将字符序列反转,并取代原序列

StringBuilder delete(int startIndex,int endIndex);	//删除startIndex处开始(包括),endIndex结束(不包括)的所有字符

StringBuilder deleteCharAt(int index);				//删除index处的字符


StringBuilder replace(int startIndex,int endIndex,String str);	//将startIndex处开始(包括),endIndex结束(不包括)替换为str

StringBuilder insert(int offset,String str);						//将str插入到offset的位置

int capasity();											//返回当前容量

int length();											//返回当前字符序列的长度

String toString();											//返回此字符序列的字符串表示形式

String subString(int beginIndex);				//返回一个从beginIndex处开始的子字符串

String subString(int beginIndex,int endIndex);	//返回一个从beginIndex开始到endIndex - 1处的子字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值