关于String方法整理集合

本文深入探讨Java中String、StringBuffer与StringBuilder的概念与用法,解析字符串不可变性、字符串缓冲区的线程安全及效率特性,以及它们之间的区别与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String 本质就是字符数组

特点;
1,String是一个final修饰的类,不能够被继承
2,类似"abd"这样的字符串字面值常量也是String类的对象,既然是对象,就可访String的成员
3,他们的值在创建后不能被更改,但是可以被共享
4,字符串缓冲区支持可变字符串【StringBuffer、StringBuilder】
5,如果字符串的拼接操作非常频繁,那么String的效率不高,会在常量池创建大量的字符串,所以建议使用字符串缓冲区

构造方法 
//public   String (char [] value)将字符数组转换成字符串
char[ ] value = {'a' , 'b' , 'c' };
String s3 = new String (value);

public String (byte[ ] bytes) 将字节数组转换成字符串
String s5 = new String(new byte [ ] {97,98,99,100});

public String(byte [ ] bytes, int offset , int lenght)将字节数组的一部分转换成字符串
String s6 = new String(new byte [ ] {97 ,98,99,100},1,2 )

String(byte[ ] bytes,String charsetName)使用编码处理字符串 后面讲解IO流的时候讲解
String s7 = new String("张三".getBytes(),"gbk");

字符串的常用方法
char charAt (int index) 从左往右找index索引
int indexOf (int ch )  从左往右找第一个出现字符ch所对应的索引
int indexOf (String str)	  从左往右找第一个出现字符串str所对应的索引
int indexOf (int ch ,int fromIndex)
int indexOf (String str,int fromIndex)	
从fromlndex索引开始从左往右找第一次出现ch,str的字符,或者字符串的索引
int lastIndexOf (int ch)	从右往左找第一个出现字符ch所对应的索引
int lastIndexOf (int ch,int fromIndex)
int lastIndexOf (String str,int fromIndex)
从fromlndex索引开始从右往左找第一次出现ch,str的字符,或者字符串的索引
String substring (int start)	从start开始截取到末尾
String substring (int start,int end)  左闭右开原则
int length()
注意 lenght,length(),size()的区别	

字符串常用方法

boolean	isEmpty();判断字符是否为空
boolean	equals(object  obj);讲此字符串的内容与指定的对象比较,区分大小写
boolean	equalsInoreCase(String str);讲此String与另一个String比较,忽略大小写
boolean	contains(String str);判断字符串中是否包含方法传入的字符串
boolean	startsWith(String str);判断字符串是否以某个指定的字符串开头
boolean	endsWith(String str);判断字符串是否已某个指定的字符串结尾
字符要变成字符串怎么做
		char ch = 'a';
		String s2 = ch + "";
		System.out.println(s2);

byte[ ] getBytes( ) ; 将字符串转化为字节数组,此方法也是编码的过程
char[ ] toCharArray( );将字符串转换为字符数组
static String valueof(char[ ]chs);返回char 数组参数的字符串表示形式
(任何参数类型都能转换成字符串)
String toLowerCase();将此String中的所有字符都转换为小写
String toUpperCase();将此String中的所欲字符偶转换为大写
String concat(String str);将指定字符串连接到此字符串的结尾

join 结合

String replace(char old,char new) :替换功能。
	String replace(String old,String new) :替换功能。
	String trim():去除字符串两空格。
	int compareTo(String str) :按字典顺序比较两个字符串。
	int compareToIgnoreCase(String str):按字典顺序比较两个字符串,忽略大小写。
	public String[] split(String regex):分隔字符串成字符数组。

StringBuffe,StringBuffder

String 每拼接一个字	符串,系统都会开辟一个新的内存空间,这样耗时又占用了大量空间
StringBuffer就可以处理这个问题,他是一个字符串缓冲区

StringBuffer类概述
线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间上他都包含某种特点的字符序列,但通过某些方法调用可以改变该序列的长度和内容

特点;
1,可变长的字符序列
2,线程安全,效率低
线程(工作线程)
安全性
效率
二者只能取其中之一

增删查改
增;
StringBuffer	append(String   str)
StringBuffer	insert(int   offset,String   str)
删;
StringBuffer   deleteCharAt(int   index)
StringBuffer   delete(int   start,int   end)
改;
public   StringBuffer   replace(int   start,int   end,String   str)
其他;
public   StringBuffer   reverse()
public   String   substring(int   start)
public   String   substring(int   start,int   end)

StringBuffder
一个可变的字符序列。此类提供一个StringBuffer 兼容APi,但不保证同步。线程不安全,效率高
用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)
建议优先采用该类,因为大多数他比StringBuffer要快,用法和StringBuffer一样

String,StringBuffer,StringBuilder 三者的区别
三者都是字符数列,
StringBuffer  安全但是效率低
StringBuilder 不安全但是效率高
ConcurrentHashMap<Employee, String>集合是一个线程安全的哈希表,它实现了ConcurrentMap接口,并且是使用ConcurrentHashMap来实现的。它可以在多线程环境下进行并发操作而无需显式地进行同步,因为它使用了一种称为锁分段技术的并发控制机制。这个集合可以存储键值对,其中键是Employee类型的对象,值是String类型的对象。你可以使用put()方法集合中添加键值对,使用get()方法根据键获取值,使用remove()方法根据键删除键值对。这个集合可以在并发环境中高效地进行读写操作,因为它使用了一些优化措施来减少锁的竞争。这使得它非常适合在多线程应用程序中使用,特别是在需要频繁进行读写操作的场景下。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java8 Stream流式操作接口详解](https://blog.youkuaiyun.com/qq_37436172/article/details/125350962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Java concurrency集合之ConcurrentHashMap_动力节点Java学院整理](https://download.youkuaiyun.com/download/weixin_38562130/12778734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值