首页 > 编程语言 >Java常用类-String

Java常用类-String

时间:2023-09-10 20:00:11浏览次数:64  
标签:11 字符 常用 Java String StringBuffer 线程 字符串

String

保存的是字符串常量,值不能被修改,每次更新都会重新开辟空间,创建对象、重新指向,效率较低。所以提供了StringBuilder和StringBuffer来增强String的功能。

private final char value[]

常用方法

	equalsIgnoreCase()//忽略大小写判断是否相等
    indexOf()//字符在字符串中第一次出现的索引,没有返回-1
	lastIndexOf()//
	charAt()//获取某索引处的字符
	subString()//按索引截取
    toUpperCase()//转换成大写
    replace()//将所有的前一个字符串替换成后一个字符串
    split()//以内部参数字符串为标准,对字符串进行分割,返回字符串数组
    compareTo()//比较时可区分大小,就返回字符的差值,故前者大返回整数
        //一字符串是另一字符串前面的部分,则返回字符串长度的差值
    format(formatStr, 参数)//占位符:%s-字符串替换,%d-整数,%.2f-保留小数点后两位的小数(并四舍五入),%c-字符
\\字符串在java中需要用"\\\\"表示

StringBuffer

是一个容器,是可变长度的。

是final类,不能被继承。

直接父类是AbstractStringBuilder。实现了Serializable,是可串行化的(可网络传输、保存到文件)

在父类中AbstractStringBuilder有属性char[] value数组存放字符串内容,因此存放在中,而不是String那样地址存放在堆中,内容在常量池。

保存的是字符串变量,不用每次都更新地址,只有数组空间大小不够才会更新,效率较高,线程安全。

1、初始容量为16字符,char[16]

2、也可构造器中指定大小

3、或构造器中传入字符串作为参数,长度为字符串length+16

//String -> StringBuffer
new StringBuffer(str)
//StringBuffer -> String
stringBuffer2.toString();
new String(stringBuffer2);

常用方法

append("努力").append(true)//追加
delete(11,14)//删除[11,14)的字符
replace(9,11,"哈哈")//[9,11)的字符替换
indexOf("卧槽")//第一次出现的索引,找不到返回-1
insert(9,"加油")//索引为9的前面插入
length()

StringBuilder

与StringBuffer类似,在大多数实现中,它比StringBuffer要快,主要操作是append和insert方法

,但是它的方法不是线程安全的(synchronized),没有做互斥处理,所以用在字符串缓冲区被单个线程使用的时候(单线程情况下使用)。

比较

String效率低(特别是循环、大量修改),复用率高(都指向常量池里的它,被多个对象引用)。

StringBuffer效率高(增删),线程安全。

StringBuilder效率最高,线程不安全。

标签:11,字符,常用,Java,String,StringBuffer,线程,字符串
From: https://www.cnblogs.com/fallorange/p/17691777.html

相关文章

  • 无涯教程-JavaScript - DISC函数
    描述DISC函数返回有价证券的折现率。语法DISC(settlement,maturity,pr,redemption,[basis])争论Argument描述Required/OptionalSettlement证券的结算日期。证券结算日期是指在发行日期之后将证券交易给买方的日期。RequiredMaturity证券的到期日。到期日......
  • mybatisplus中按照条件查询的三种方式,常用的是lambda查询,当进行测试查询的时候,可以将
    2023-09-10目录结构 logback.xml<?xmlversion="1.0"encoding="UTF-8"?><configuration></configuration>application.ymlspring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://loca......
  • 无涯教程-JavaScript - DDB函数
    描述DDB函数使用双倍余额递减法或您指定的某些其他方法返回指定期间内资产的折旧。语法DDB(cost,salvage,life,period,[factor])争论Argument描述Required/OptionalCostTheinitialcostoftheasset.RequiredSalvage折旧结束时的价值(有时称为资产的残值)......
  • 多模块项目依赖中,项目启动失败-org.yaml.snakeyaml.error.YAMLException: java.nio.ch
    异常问题专栏收录该内容22篇文章1订阅订阅专栏错误:org.yaml.snakeyaml.error.YAMLException:java.nio.charset.MalformedInputException:Inputlength=1原因:yaml/yml配置文件解析失败解决:把项目编码(FileEncodings)全部设置为UTF-8,后重启IDEA软件;其中,若为多模块项目依......
  • 雷赛板卡 控制常用方法 工具类
    #regionDMC3000系列重写///<summary>///雷赛板卡AxisDMC3000///</summary>publicclassDMC3000:AxisModel{publicDMC3000(){}///<summary>///回零///</summary>///<returns></returns>publico......
  • JavaNote05-面向对象编程01
    0.面向对象内容的三条主线Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类面向对象的特征:封装、继承、多态、(抽象)其他关键字的使用:this、super、package、import、static、final、interface、abstract等1.面向对象编程概述面向对象是软件开发中的一类编程风......
  • centos更换java版本
     以java11为例先使用下面的命令下载java11$sudoyum-yinstalljava-11-openjdk-devel输入命令改变java环境$sudoalternatives--configjava出现下面的界面,选择3(假如需要换为java11) 输入java-version查看版本 ......
  • JavaScript:逻辑运算符
    与(&&)、或(||)&&在JavaScript中,A&&B是一个逻辑与运算,其执行逻辑如下:如果表达式A的结果为假值(例如false、null、undefined、0、NaN或空字符串""),则整个表达式A&&B立即返回A的值,而不会继续执行B。如果表达式A的结果为真值(例如非空字符串、非零数值、对象或函......
  • 无涯教程-JavaScript - DB函数
    描述DB函数使用固定余额递减法返回指定期间内资产的折旧。语法DB(cost,salvage,life,period,[month])争论Argument描述Required/OptionalCostTheinitialcostoftheasset.RequiredSalvageThevalueattheendofthedepreciation(sometimescalledthe......
  • Java代码逃逸
    Java代码逃逸在编程领域,代码逃逸是指变量或对象在其作用域之外被引用或访问的情况。在Java中,代码逃逸可能会导致一些意想不到的问题和安全隐患。本文将探讨Java代码逃逸的概念、原因以及如何避免它。什么是Java代码逃逸?Java代码逃逸指的是局部变量或对象在其定义的作用域之外被其他......