Sring StringBuffer StringBuilder封装类
Sring StringBuffer StringBuilder封装类
一、String类常见方法的使用
字符串数据都是一个对象
字符串数据一旦初始化就不可以被改变
字符串对象都存储于常量池中,字符串常量池
==比较的是地址值,而new是重新开辟
1、判断
- equals(Object obj) :字符串类重写了Object的方法,用于比较字符串的值是否相等
- equalsIfnoreCase(String anotherString) 用于标胶字符串的值是否相等不区分大小写
- contains(String s) :判断一个字符串中是否包含另一个字符串
- startd With(String prefix) :测试次字符串是否是以指定的前缀开始
- endsWith(String suffix):测试此字符串是否以指定的后缀结束
- idEmpty()判断字符串是否为空
2、获取
int length() :获取字符串长度
char charAt(int index):获取指定位置的字符
获取指定的字符串或者字符串在给定的字符串中第一次出现的索引
- int indexOf(int ch) 获取指定字符串在字符串中第一次出现的索引
- int indexOf(int ch ,int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
- int indexOf(String str) 获取指定字符串在字符串中第一次出现的索引
- int indexOf(String str ,int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
获取指定的字符或者字符串在给定的字符串中最后一次出现的索引
int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,
从指定的索引处开始进行反向搜索。
int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处
的索引,从指定的索引开始反向搜索。
获取子串
String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个
子字符串。 <含头不含尾>
3、转换
字符串和字节数组的转换
从 String 到 byte[]------>byte[] getBytes()
从 byte[]到 String-------->new String(byte[] by)构造方法 .
字符串和字符数组的转换
从 String 到 char[]
char[] toCharArray()
length(),charAt(int index)结合
从 char[]到 String
new String(char[] ch)
static copyValueOf(char[] data)
static String valueOf(char[] data, int offset, int count)
static String valueOf(xxx y) xxx 基本数据类型
举例:int x = 4;
基本数据类型转换成字符串:String.valueOf(x);
static String valueOf(Object obj) 把对象转成字符串
举例:
Demo d = new Demo();
sop(d);
sop(d.toString());
sop(String.valueOf(d));
String toUpperCase() 所有字符都转换为大写
String toLowerCase() 所有字符都转换为小写
字符串的连接
字符串连接符:+
String concat(String str) 将指定字符串连接到此字符串的结尾。
String s = "aaa" s.concat("bbb").concat("ccc").concat("ddd");
4、替换
String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替
换此字符串中出现的所有 oldChar 得到的。
String replace(String oldString, String newString) 返 回 一 个 新 的 字 符 串 , 它 是 通 过 用 newString 替换此字符串中出现的所有 oldString 得到的。
5、切割
- String[] split(String regex)根据给定的字符串把字符串分割.
6、去除字符串空格
- trim() 去除字符串的前后空格
三、StringBuffer&StringBuilder
字符串String是定长的,StringBuffer是变长的
元素的追加
- insert(索引,元素)
- reverse();反转
- capacity();容量 它可以存储的元素个数
- length();长度 它实际存储的元素个数
- String substring(索引,); 把 StringBuffer 中的一部分复制,然后把复制的这部分内容赋给了一个 String.
StringBuffer,StringBuilder区别
- StringBuffer 线程安全的,效率低(同步)
- StringBuilder 线程不安全的,效率不高(不同步的)
- 基本数据类型用比较运算符进行比较,引用数据类型用compare To进行比较
Sring StringBuffer StringBuilder封装类的更多相关文章
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String,StringBuffer,StringBuilder的区别
public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...
- [源码]String StringBuffer StringBudlider(2)StringBuffer StringBuilder源码分析
纵骑横飞 章仕烜 昨天比较忙 今天把StringBuffer StringBulider的源码分析 献上 在讲 StringBuffer StringBuilder 之前 ,我们先看一下 ...
- 关于String StringBuffer StringBuilder
0. String对象的创建 1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...
- String, StringBuffer, StringBuilder比较
1.见API: String是不可变的字符序列: StringBuffer是线程安全的,可变的字符序列: StringBuilder是可变的字符序列: StringBuffer与String的区别是S ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- Java学习笔记--String StringBuffer StringBuilder
String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
随机推荐
- docker 创建mysql容器并且绑定到本地navicat
docker pull mysql docker run --name mysql -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root1234 mysql do ...
- <DP> (高频)139 375 374 (DP hard)312
139. Word Break 返回结果较为简单可用dp, 复杂用dfs class Solution { public boolean wordBreak(String s, List<Str ...
- ASP.NET开发实战——(十二)ASP.NET MVC 与数据库之Entity Framework Migrations
在开发数据库应用程序的时候,经常会遇到某些表需要添加字段或者修改类型.新增表等需求,而对于EF Code First来说关注的只有实体类,当需求变更时只需要添加新的实体类或者在实体类中添加.删除.修改 ...
- ORB-SLAM2初步(Tracking.cpp)
今天主要是分析一下Tracking.cpp这个文件,它是实现跟踪过程的主要文件,这里主要针对单目,并且只是截取了部分代码片段. 一.跟踪过程分析 首先构造函数中使用初始化列表对跟踪状态mState(N ...
- learning rate warmup实现
def noam_scheme(global_step, num_warmup_steps, num_train_steps, init_lr, warmup=True): ""& ...
- python threading ThreadPoolExecutor
线程池,为什么要使用线程池:1. 线程中可以获取某一个线程的状态或者某一个任务的状态,以及返回值2. 当一个线程完成的时候我们主线程能立即知道3. futures可以让多线程和多进程编码接口一致 获取 ...
- 设置 VMware 中的 Mac OS 虚拟机进入 Recovery 模式
Ø 简介 本文主要介绍 VMware 中的 Mac OS 虚拟机如何进入 Recovery 模式的方法,具体步骤如下: 1. 选择 Mac OS 虚拟机,点击"打开电源是进入固件&qu ...
- 使用Redis作为Spring Security OAuth2的token存储
写在前边 本文对Spring Security OAuth2的token使用Redis保存,相比JWT实现的token存储,Redis可以随时吊销access_token,并且Redis响应速度很快, ...
- Prometheus 监控K8S集群资源监控
Prometheus 监控K8S集群中Pod 目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接 ...
- 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域
写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更 ...