首页 > 其他分享 >String

String

时间:2023-02-16 20:56:06浏览次数:40  
标签:String 创建 aaaa 实例 str 字符串

String

概念:String的底层是一个封装的char[]数组

特点

因为String的底层是char[]数组,所以String的长度不可变

创建实例

String通常有两种创建实例的方式

    String str="aaaa";
    //这种创建方式是在常量池中放置一个常量,创建实例时会先从常量池中获取,若没有则去创建对象
    public static void main(String[] args) {
        String str="aaaa";
        String str1="aaaa";
        System.out.println(str==str1);
    }
	//结果为 true 因为String的这种创建实例的方式,是先从常量池中获取,如果常量池中没有,再去创建一个实例
	//所以上方代码中,str1和str代指的是同一个实例
    String str=new String("aaaa");
	//这种创建方式,每次都是重新创建一个实例
	public static void main(String[] args) {
        String str=new String("aaaa");
        String str1=new String("aaaa");
        System.out.println(str==str1);
    }//结果为 false 因为这两次创建了两个实例,地址值不同

常用方法

length() //获取字符串长度
substring(int strIndex,int endIndex) //截取字符串,前闭后开
indexof() //获取指定字符或字符串的第一次出现的索引位置,从0开始
charat() //获取指定索引位置的字符
lastIndexof() //获取指定字符或字符串最后一次出现的索引位置
split() //将字符串,按照指定字符串分割开 注意 split(String reg) 和split(String reg,-1)的区别
		//https://www.cnblogs.com/planted/p/15182610.html 有介绍其区别
startwith() //判断该字符串是否由指定字符开头
endswith()  //判断该字符串是否由指定字符结尾
trim()      //去除字符串两端的空格

String的连接效率

注意:数值类型使用 "+" 与字符串连接时,结果为字符串类型

多个字符串之间是通过 "+" 进行连接的,但是由于String的底层是char[],长度不可变,所以每次连接,都相当于重建了一个char数组,效率非常低

由于字符串的连接效率较低,所以出现了下方两个类:

StringBuffer和StringBuilder

创建实例:这两个类只能通过new 的方式创建实例

特点:

  1. 这两个类的底层都是封装的char[]数组
  2. 这两个类是可变的字符序列
  3. 默认初始的长度是16,长度不够的话,第一次扩容是(2倍+2),若仍然不够则直接扩容到目标长度
  4. 这两个类是通过append()方法进行字符串连接
  5. StringBuffer线程安全,StringBuilder线程不安全

标签:String,创建,aaaa,实例,str,字符串
From: https://www.cnblogs.com/planted/p/17128258.html

相关文章

  • Java—String类
    一、toString()方法1.publicStringtoString():返回对象的字符串;2.toString(),返回的是对象的地址值,没有实际意义,需要重写;重写规制:返回对象的属性值;getClass.getNam......
  • String详解
    String对象的不可变原因,String对象的内存布局,及String对象之间的执行==,equals,+运算时的分析。Author:MsuenbDate:2023-02-16java.lang.String类代表字符串。String......
  • char* 和std::string的生命周期
    std::string跟普通的c++对象一样,在对应的local/global的域内自动释放(包括string指向的字符串)。因此{std::stringabc="abc";}"abc"在花括号外就被自动释放了。而ch......
  • [ABC272F] Two Strings 题解
    [ABC272F]TwoStringsSolution目录[ABC272F]TwoStringsSolution更好的阅读体验戳此进入题面SolutionCodeUPD更好的阅读体验戳此进入题面给定两字符串$S,T$,求......
  • APS.NET Core 6.0Json任何类型读取到字符串属性The JSON value could not be converte
    在升级.netsdk到6.0版本后出现TheJSONvaluecouldnotbeconvertedtoSystem.String.原因是我代码定义的类型是string,但是传参的时候写了int,publicoverridevoidC......
  • hex转string,hex转字符串,hex16进制转字符串,hex转中文
    hex转字符串,hex16进制转字符串,在线工具 https://www.toolscat.com/decode/hexhex转字符串,hex转string,string转hex,16进制转字符串,hex转字符串在线工具,hex转str在线......
  • String概述以及常用方法
    publicclassDemo01{publicstaticvoidmain(String[]args){Stringname="hello";//“hello”常量存储在字符串池中,字符串池在方法区中,字符串字面值可......
  • String案例演示
    publicclassApplication{publicstaticvoidmain(String[]args){Stringstr="thisisatext";//1将str中的单词单独获取出来Strin......
  • String.format()在android中的应用
    android中string.xml中%1$s、%1$d等的用法一,不使用xliff的用法:1、整型,比如“小姐今年23岁了”,这个23是整型的。在string.xml中可以这样写,Java代......
  • 正确解决包含汉字的QString串转cv::String并format格式化
    QStringnow=QDateTime::currentDateTime().toString("yyyy-MM-dd_HH-mm-ss-zzz");QStringfileName1=QString::fromUtf8("D:/frame/小区监控图像_");......