首页 > 其他分享 >String字符串类----详解

String字符串类----详解

时间:2024-06-08 16:30:21浏览次数:9  
标签:String int StringBuffer 给定 ---- 详解 字符串 new

1.1 简介


1.String不是基本数据类型,是一种引用类型
2.String代表一组不可改变的Unicode字符序列。String类对象的内容一旦被初始化,不能再改变
3.String类是final修饰的终结类,不能产生子类

2.创建String


1.静态方式创建:String str="abc";在方法区常量池中产生唯一一个字符串对象,如果有另外一个引用指向了相同的字符串,则两个引用变量的地址相同
2.动态方式创建:String str=new String("abc"); 在堆内存中会产生一个不同的对象,会产生两个对象 

3.构造方法


1.new String();
2.new String("abc");
3.new String(char类型数组);
4.new String(char类型数组,数组下标起始位置,取出数组的长度);
5.new String(byte类型数组);
6.new String(byte类型数组,数组下标起始位置,取出数组的长度); 

4. 连接操作符


可以使用"+"作为连接符,任何的数据类型和字符串使用加号连在一起,最后都会变成字符串类型

5. 常用方法


1.length():返回int类型的值,获取字符串长度
2.equals(String):判断两个字符串中的字面量值是否相等
3.equalsIgnoreCase(String):不区分大小写比较字面量值是否相等
4.indexOf(int):
5.indexOf(String):查找给定值在字符串中第一次出现的下标位置。如果值不存在,则返回-1

6.indexOf(String,int):查找给定值在字符串中给定索引位置开始,第一次出现的下标位置。如果值不存在,则返回-1
7.lastIndexOf(int):
8.lastIndexOf(String):查找给定值在字符串中最后一次出现的下标位置。如果值不存在,则返回-1
9.lastIndexOf(int,int):
10.lastIndexOf(String,int):查找给定值在字符串中给定索引位置开始,最后一次出现的下标位置。如果值不存在,则返回-1

11.oUpperCase():将字符串中所有字符都转换为大写
12.toLowerCase():将字符串中所有字符都转换为小写
13.charAt(int):返回下标引处的char值

14.substring(int):对字符串进行截取,从指定索引位置开始,一直截取到最后
15.substring(int,int): 对字符串进行截取,从指定开始位置,截取到结束位置(不包含结束位置)
16.trim():将字符串前后空格去除
17.concat(String):字符串连接 和+实现相同的功能,如果字符串是null值不能使用,并且只能传字符串参
数,其他类型不可以使用
18.getBytes():将字符串转换成byte数组
19.toCharArray():将字符串转换成char数组
20.contains(String):判断在字符串是否包含给定值,返回boolean类型的值
21.startsWith(String):判断字符串是否以给定值做为开始
22.startsWith(String,int):判断字符串从索引位置,是否以给定值做为开始
23.endsWith(String):判断字符串是否以给定值做为结束
24.replace(char,char):对字符串指定字符,使用新的字符进行替换
25.replace( CharSequence, CharSequence):对字符串指定的字符序列,使用新的字符序列进行替换
26.replaceAll(String,String):按正则表达式要求,将给定的值替换满足正则的字符串
27.split(String):按给定的正则表达式,将字符串分隔成字符串数组
28.maches(String):判断字符串是否可以匹配给定的正则表达式
29.contentEquals(CharSequence)
30.contentEquals(StringBuffer):字符串和StringBuffer或者字符序列比较内容
31.Pattern.matcher(String,String):和字符串maches()方法执行相同结果

6.StringBuffer


内容可变的字符串类,使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象。
初始时,默认是有16个字符来做为缓冲区


6.1构造方法


new StringBuffer();
new StringBuffer(String);
new StringBuffer(int);
new StringBuffer(charSequence);


6.2常用方法


append():在当前StringBuffer对象上,追加其他内容
capacity():返回当前容量
length():返回长度
setCharAt(int,char):将给定索引位置的字符设置为第二个参数给定的值
reverse():将StringBuffer内容反转
delete(int,int):删除StringBuffer从指定索引开始(包含)到结束(不包含)的字符串
toString():将StringBuffer转成字符串
insert(int,Object):在指定索引位置,插入给定值
replace(int,int,String):将指定的字符串替换到起始位置(包含)和结束位置(不包含)中
deleteCharAt(int):删除指定索引位置的字符

7.StringBuilder

提供了和StringBuffer相同的API
StringBuffer的方法,都有synchronized修饰,是线程安全的
StringBuilder的方法,没有synchronized修饰,非线程安全的。如果是单线程操作字符串相关处理,StringBuilder的效率最高。
区别
String、StringBuffer、StringBuilder区别


String和StringBuffer区别:一个是常量,一个是变量。String 是一个final修饰的终结类,不能产生子类,是使用final的byte数组来存储值,所以一旦创建不能改变。如果经常对字符串进行修改、删除或者插入操作,建议使用StringBuffer效率更高
StringBuffer和StringBuilder区别:一个是有线程安全的,一个是非线程安全的

标签:String,int,StringBuffer,给定,----,详解,字符串,new
From: https://blog.csdn.net/2302_80969025/article/details/139544720

相关文章

  • Steam游戏尝鲜攻略:如何安全高效试玩海量游戏
    在Steam这个全球最大的数字发行平台上,数以万计的游戏琳琅满目,让无数玩家心驰神往。但对于想要广泛探索不同游戏类型却又预算有限的玩家来说,如何在不违反规定的情况下,安全高效地试玩海量游戏成为了一大诉求。本文将为您揭秘几种策略,从Steam的家庭共享功能到充分利用免费资源,助您......
  • vsCode开发实战之 C语言动态文件通讯录项目
    引言本项目所用开发环境为vsCode+CMake,至于为何如此选择,我就不赘述了,希望这篇博客能对您的学习有帮助!看完记得点赞收藏哦!!!一.项目结构项目根目录下结构如图:二.CMake配置CMake文件配置如图:三.头文件contact.h四.主函数文件main.c五.接口函数文件contact.c ......
  • Java---异常【详细】
     1.异常的简介1.编译错误:基本语法错误,编译器进行语法检查,如果没有通过,程序违背了计算机编程语言的语法。2.运行错误:程序可以执行,在执行过程中发生异常,导致程序提前退出,没有得到预计的执行效果。3.逻辑错误:程序可能执行,结果不对。4.异常体系,保证程序的健壮性。2.java异......
  • 华为云耀云服务器L实例规则配置教程(亲自实操经验)
    我刚买了这个最基础的36¥的L实例的云服务器,这个实例是自带公网ip的,不需要额外购买。我准备先配置好,能够通过公网ip访问,以便之后上传javaweb项目可以直接访问,不过中途遇到了点问题,但是已解决,记录一下方便以后操作,如果能帮到和我一样的纯小白就更好了。我选的系统是CentOS7/8,......
  • 图文详解Windows系统下搭建mysql开发环境——mysql Community 8 和 navicat Premium 1
    在正式开始学习使用MySQL之前,我们有必要先搭建一个良好的开发环境,让我们的学习和工作效率事半功倍。本文涉及到的软件百度云盘:链接:https://pan.baidu.com/s/1jj_YajEv8adeEjMrXLhOTQ?pwd=1023提取码:1023目录客户机—服务器软件MySQL版本MySQL的下载和安装MySQL服务的......
  • nginx的负载均衡方式
    Nginx是一种高性能的HTTP和反向代理服务器,它具有强大的负载均衡功能。Nginx支持多种负载均衡策略,包括轮询、权重轮询、最少连接、IP哈希等。1.轮询(RoundRobin)轮询是Nginx的默认负载均衡方式,它将请求依次分配给每个后端服务器。配置:http{upstreamweb{ser......
  • 高考不是人生的全部
    最近两天高考,刚好今天在网上看到九边的文章,说的非常有道理:如果你现在高一,我会劝你好好学,高考非常重要。如果你是个学渣,那么我想说,考不好也没啥事,别太担心。大家可以考虑一个问题:如果高考考的是长跑,那么高中实验班里那群人大多数估计本科也费劲。如果是唱歌或者跳舞,那估计考的也......
  • 电磁场公式
    矢量分析梯度和方向倒数标量场\(\varphi\)的梯度为\[grad\varphi=\nabla\varphi=\vec{e_x}\frac{\partial\varphi}{\partialx}+\vec{e_y}\frac{\partial\varphi}{\partialy}+\vec{e_z}\frac{\partial\varphi}{\partialz}\]标量场在\(\vec{l}\)方向上(单位矢量为......
  • ArrayList、LinkedList
    区别ArrayList是实现了基于数组的数据结构,内存连续;LinkedList是基于链表结构。对于随机访问的get和set方法查询元素,ArrayList要优于LinkedList,因为LinkedList循环链表寻找元素。对于新增和删除操作add和remove,LinkedList比较高效,因为ArrayList要移动数据。优缺点ArrayLis......
  • oracle进程
    每个oracle进程都有自己的任务,oracle会给进程分配内存(PGA)让进程更好的完成任务。oracle进程可以分为三类:服务器进程,后台进程,从属进程。1服务器进程服务器进程是执行客户端会话指令的进程。负责将客户端的指令发送到oracle服务端执行,然后将服务端的结果返回给客户端。可分为......