重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结

一、StringBuffer类概述buffer:缓冲

2. 字符串缓冲区,跟String非常相似,都是用来存字符串数据的

3. String类和StringBuffer类中都有一个char数组,它就是缓冲区 String类的这个缓冲区我们是不能进行操作,而StringBuffer类的这个缓冲区可以控制它的长度

4. java.lang包

5. 缓冲区不够用时可以自动增长

二、构造方法public StringBuffer(),无参构造方法,构造一个空的字符串缓冲区,初始容量为16个字符

public StringBuffer(int capacity),构造一个指定容量的空的字符串缓冲区

public StringBuffer(String str),使用一个字符串作为初始内容来构造一个字符串缓冲区,并在后面预留16个字符的空缓冲区

1. StringBuffer sb="hello"; 不行

2. StringBuffer sb=new StringBuffer("hello");

sb+"world"; 不行

三、功能方法public StringBuffer append(任意类型 o),把任意类型数据的字符串表达形式追加到缓冲区的最后(例如:如果是对象,追加的是其toString方法的返回值)

public StringBuffer insert(int offset,任意类型 o),把任意类型的字符串表达形式插入到缓冲区指定位置

public int capacity(),获得字符串缓冲区的当前容量

public int length(),获得字符串缓冲区内字符串的长度

public StringBuffer delete(int start,int end),删除缓冲区指定起始位置的字符串

public StringBuffer deleteCharAt(int index),删除缓冲指定位置的字符

public StringBuffer replace(int start,int end,String str),把缓冲区指定位置的字符串替换为新的字符串

public StringBuffer reverse(),字符串反转(倒)

public String toString(),把StringBuffer转换为String类型

四、String和StringBuffer的区别1. StringBuffer sb="hello"; 不行

2. StringBuffer sb=new StringBuffer("hello"); sb+"world"; 不行

3. String对象是不可变的,StringBuffer对象是可变的(画内存分配图)

4. StringBuffer保证线程安全(数据同步),String不保证线程安全(数据不同步)

五、StringBuilder类它跟StringBuffer一样,两个类兼容的

2. 该类不保证线程安全

3. 在不考虑多线程的情况下,字符串三姐妹的效率:StringBuilder类 > StringBuffer类 > String类如果连接字符串常量,使用字符串的“+”效率更高;如果连接字符串变量,使用StringBuffer的append方法效率更高

六、包装类Java有8大基本数据类型:byte、short、int、long;float、double;char、boolean

2. String s="100"; String s="99.999" ;

3. Java提供了基本数据类型对应的引用数据类型:Byte、Character、Short、Integer、Long、Float、Double、Boolean

4. 不管是引用数据类型还是基本数据类型,他们的作用都是一样的。差别主要是:引用类型里面可以提供方法,基本数据类型不行

5. 基本数据类型对应的引用数据类型叫包装类

6. 包装类的用法 Integer i=new Integer(100); //装箱 //int i=100; Integer j=100; //自动装箱(JDK5以后) System.out.println(i.intValue()+100); //拆箱 System.out.println(i+100); //自动拆箱(JDK5以后)

七、包装类的主要作用

这些类中提供了一下功能方法,可以实现把String类型的数据转换成包装类或基本数据类型1.String和包装类之间互相转换 a.包装类转换为String Integer i=100; i+"" toString() b.String转换为包装类 valueOf:该方法在哪个类,那么它的作用就是把其他类型转换成它所在的这个类2.String和基本数据类型之间的互相转换 a.基本数据类型转换为String +"" b.String转换为基本数据类型

八、正则表达式程序需要对客户录入的数据进行校验

2. 正则表达式的作用就是对数据进行校验(针对格式)

3. 示例:郑州市固定电话(0371-56061160-223) 区号固定为0371 电话号码固定8位,不能以0开头 分机号可有可无,1-3位 都是数字 中间用“-”分割

4. String zz_phone="0371-[1-9]//d{7}(-//d{1,3})?";

5. 正则表达式是以字符串的形式存在的

6. 正则表达式就是由一堆特殊的符号组成的,用来描述或表达某种数据的格式的

九、怎么写正则表达式

1.先写固定不变的2.然后分块写,每块都是先指定类型后指定个数

十、怎么用正则表达式进行数据校验1.String类的public boolean matches(String regex){}String email="601141632@qq.com";String email_regex=".+@//w+//.[a-z]{2,}";email.matches(email_regex);

2.java.util.regex包中有个Pattern类public static matches(String regex,String input){}

十一、String类的split方法支持正则表达式

2.String类的replace方法不支持正则表达式,replaceAll支持正则表达式

以上就是重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结相关推荐

  1. [JAVA基础类库] String类 ○ StringBuffer类 ○ StringBuilder类

    引言 字符串就是一连串的字符序列,Java提供了String.StringBuffer和StringBuilder三个类来封装对字符串,并提供了系列方法来操作字符串对象. String类是不可变类的: ...

  2. 重拾java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  3. 重拾Java基础知识:设计模式

    设计模式 前言 模式分类 设计原则 单一职责原则 开闭原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 合成复用原则 创建型模式 工厂模式(简单工厂.工厂方法.抽象工厂) 单例模式 原型模式 ...

  4. 重拾Java基础知识:运算符操作

    Java基础知识:运算符操作 前言 优先级 赋值 算术运算符 一元加减运算符 递增和递减 关系运算符 逻辑运算符 短路 位运算符 与(&) 或(|) 异或(^) 反(~) 左移(<< ...

  5. 重拾Java基础知识:IO流

    I0流 前言 字节流 InputStream OutputStream 字符流 Reader Writer 缓存流 转换流 序列化流 数据流 字节数组流 打印流 校验流 数据压缩 ZIP压缩和解压 G ...

  6. 重拾Java基础知识:网络编程

    网络编程 前言 网络体系结构 IP地址 IP地址分类 子网掩码 端口 域名 网络协议 TCP/IP协议 三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? UDP协议 HTTP协议 Socke ...

  7. 重拾Java基础知识:枚举

    枚举 前言 基本 enum 特性 方法添加 覆盖 enum 的方法 switch 语句中的 enum values 方法的神秘之处 EnumSet EnumMap 常量特定方法 本章小结 前言 关键字 ...

  8. 重拾Java Network Programming(一)IO流

    前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...

  9. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

最新文章

  1. 《用Python进行自然语言处理》第8章 分析句子结构
  2. GNU Radio的hello world(转)
  3. [解决方案]SystemError: Parent module ‘‘ not loaded, cannot perform relative import的解决方案
  4. python3项目-python3搭建Django项目
  5. C六:define宏定义
  6. C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板举例
  7. 定义派生类和继承类(从汇编分析)
  8. HTML5调用redis,redis实现从数据库获取数据添加到html页面上
  9. 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区
  10. linux学习笔记-第六课-/etc/passwd,/etc/shadow,useradd,su,sudo等
  11. BeetleX进程服务管理组件应用
  12. init进程(即进程1,或者说linuxrc)的详解
  13. OPENSSH升级为7.4
  14. Jenkins进阶系列之---下载安装
  15. openstack排错
  16. CCNA考试题库中英文翻译版及答案12
  17. greenplum 数据库单机部署
  18. U盘防病毒从七方面做起
  19. 最新|解决Mac安装软件的“已损坏,无法打开。 您应该将它移到废纸篓”问题
  20. 工业互联网+危化安全生产综合管理平台怎样建

热门文章

  1. java clock计时_Java Clock类| systemUTC()方法与示例
  2. can收发器 rx_CANOpen系列教程03 _CAN收发器功能、原理及作用
  3. vector 不初始化时什么状态_Vue原理解析(三):初始化时created之前做了什么?...
  4. ef mysql 读写分离_EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一...
  5. 皮尔逊相关性_皮尔逊的相关性及其在机器学习中的意义
  6. Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」
  7. python opencv过滤红色
  8. Kubernetes 1.20 报错:“open /run/flannel/subnet.env: no such file or directory“
  9. 外部服务发现之 ingress(一) traefik 的安装使用
  10. 大学电路题目怎么搜_长沙理工大学2020真题浅析