String字符串

news2024/11/20 14:26:33

文章目录

  • String类
    • String常用的字符串处理方法
    • StringBuffer类
  • StringBuffer
    • StringBuffer类中常用的方法
    • StringBuilder类(了解为主)
    • StringTokenzier类(了解为主)

在这里插入图片描述


final属性,不可扩展,不可子类,不可改变。
数据在常量池
String s1="1";
String s2="1";
String s3=new String("1");
s1=s2   s1与s2都是常量区,地址相同
s1!=s3  s3是栈,地址不同


"1"+"2" 是常量+常量=常量
String s1="1"; s1是变量
String s2="2"; s2是变量
s1+s2=变量+变量=变量(new的 在堆中)


字符串比较所有字符的Ascll大小
String s1="1";
String s2="1";
System.out.println(s1.compareTo(s2));
-1 S1<S2
0  S1=S2
1  S1>S2


判断字符串包含关系
String s1="1";
String s2="12";
System.out.println(s2.contains(s1));
S2包含S1 true


查找指定字符位置
Strings1="12";
System.out.println(s1.indexOf('1'));   0位置
System.out.println(s1.indexOf('2'));   1位置
System.out.println(s1.indexOf('3'));   -1找不到


字符串截取,
String s1="0123456789";
从指定位置一直到最后
System.out.println(s1.substring(7));   789A位置到B位置之前,不包括B位置
System.out.println(s1.substring(7,8));   7


去掉前后空格
S1.trim();


Stringchar[]
Strings1="0123456789";
char[] list=s1.toCharArray();
System.out.println(list);


字符串比较所有字符的Ascll大小
String s1="001122";
System.out.println(s1.replaceAll("11","33"));
System.out.println(s1);
003322
001122


字符串分割
S1="11 22 33";
S1.split(" ")=["11","22","33"]

String类

String是字符串常量类
String对象的值一经赋值,其值不可变
指的是所指向的内存值不可修改,但可以改变指向

String list=new String("hello");
list引用指向了对象
引用数据类型不直接拥有空间,只是指向空间
list=new String("hai");
引用指向被改变

String类型变量的初始化
方法一:构造方法初始化
String name= new String(“zhangxiao”);
方法二:字符串常量初始化(不推荐)
String sex = “男”;

//了解为主!!!
s="hello";
相当于:s=new String("hello);
在JVM中进行的优化

String s1="hello";
s==s1;
这是因为JVM进行的优化

String类是final的,无法被继承

String s = “hello” 和 String s = new String(“hello”) 有什么不一样?
两个对象的内存不同

String常用的字符串处理方法

字符串连接(不改变原来的数据)
concat(String str)
“+”运算符

String s1=new String("111");
String s2=new String("222");
s1=s1+s2;
s1=s1.concat(s2);
  • 字符串查找

indexOf (String str)
lastIndexOf(String str)
charAt(int indexOf)
startsWith(String prefix)检测字符串是否以指定的前缀开始。

  • 字符串分割

split(String regex):字符串分割
compareTo(String str):字符串比较
equalslgnoreCase(String str):忽略大小写

  • 字符串替换

replace(char oldChar, char newChar)

  • 字符串求子串

substring(int beginIndex, int endIndex)

  • 字符串大小写转换

toUpperCase() 小写转大写
ToLowerCase()大写转小写

StringBuffer类

StringBuffer

 StringBuffer sb=new StringBuffer();
 添加
 sb.append("123");
 sb.append('4');
 System.out.println(sb);    					1234
 获取指定位置字符
 System.out.println(sb.charAt(0));				1
 插入
 System.out.println(sb.insert(2,"00"));			120034
 字符串反转
 System.out.println(sb.reverse());				430021
 删除
 System.out.println(sb.delete(2, 4));      		4321
 替换
 System.out.println(sb.replace(2, 4, "00"));	4300

StringBuffer类是一个字符串变量类
StringBuffer对象的值可以修改
主要用于对字符串做大量修改的操作时
StringBuffer变量的初始化
构造方法初始化
StringBuffer stringBuffer = new StringBuffer(“Hello”);

StringBuffer类中常用的方法

  • 字符串连接:append(Object obj)

  • 字符串删除:delete(int start,int end)

  • 字符串插入:insert(int offset,Object obj)

  • 字符串逆序:reverse()

  • 转换为String对象:toString()

在这里插入图片描述

只使用·String时内存消耗比较大

StringBuilder类(了解为主)

StringBuilder类与StringBuffer类的方法调用是一致的。
StringBuilder类与StringBuffer类的区别:
– StringBuffer是线程安全的
– StringBuilder是非线程安全的
(多线程)

StringTokenzier类(了解为主)

StringTokenizer类主要用途是将字符串以定界符为界,分析为一个个独立的token(大块变小块)。
StringTokenizer中的定界符可以自己指定。
StringTokenizer常用的方法:
hasMoreTokens:是否有更多的分隔符
nextToken:返回下一个分隔符前的内容值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/591191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ list类成员函数介绍

目录 &#x1f914;list模板介绍&#xff1a; &#x1f914;特点&#xff1a; &#x1f914;list内存结构图解&#xff1a; &#x1f914; list的成员函数&#xff1a; &#x1f60a;list构造函数&#xff1a; &#x1f50d;代码示例&#xff1a; &#x1f50d;运行结果&…

python图像处理实战(二)—二值化图像与线性变换

&#x1f680;写在前面&#x1f680; &#x1f58a;个人主页&#xff1a;https://blog.csdn.net/m0_52051577?typeblog &#x1f381;欢迎各位大佬支持点赞收藏&#xff0c;三连必回&#xff01;&#xff01; &#x1f508;本人新开系列专栏—python图像处理 ❀愿每一个骤雨初…

什么是时间复杂度?

时间复杂度定义&#xff1a;在计算机科学中&#xff0c;时间复杂性&#xff0c;又称时间复杂度&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间。这是一个代表算法输入值的的长度的函数。时间复杂度常用大O符号表述&#xff0c;不包括这个函数的…

Python篇——数据结构与算法(第四部分:希尔排序及其讨论、计数排序、桶排序、基数排序)

1、希尔排序 希尔排序&#xff08;shell sort&#xff09;是一种分组插入排序算法首先取一个整数d1n/2&#xff0c;将元素分为d1个组&#xff0c;每组相邻两元素之间距离为d1&#xff0c;在各组内进行直接插入排序取第二个整数d2d1/2&#xff0c;重复上述分组排序过程&#xf…

SpringCloud Alibaba Seata 工作机制

SpringCloud Alibaba Seata Seata 工作机制 说明 之所以放在后面说工作机制是因为如果一开始就说的话理解困难 所以我们有了前面的列子和说明我们在结合本节内容会收获的多理解相对容易点 分布式事务过程分析 Seata 分布式事务处理过程-ID三组件模型 debug 梳理: 术语 先…

C++ deque类成员函数介绍

目录 &#x1f914;deque模板介绍&#xff1a; &#x1f914;deque特点&#xff1a; &#x1f914;deque内存结构图解&#xff1a; &#x1f914;deque各操作地址指向&#xff1a; &#x1f914; deque的成员函数&#xff1a; deque构造函数&#xff1a; &#x1f50d;代…

C++ 常见集合算法

目录 &#x1f914;常见集合算法&#xff1a; &#x1f642;1.set_intersection 容器交集 代码示例&#xff1a; 运行结果&#xff1a; &#x1f642;2.set_union 容器并集 图解&#xff1a; 代码示例&#xff1a; 运行结果&#xff1a; &#x1f642; 3.set_differe…

高速缓存(cache)的原理: 了解计算机架构与性能优化

计基之存储器层次结构 Author&#xff1a; Once Day Date&#xff1a; 2023年5月9日 长路漫漫&#xff0c;而今才刚刚启程&#xff01; 本内容收集整理于《深入理解计算机系统》一书。 参看文档: 捋一捋Cache - 知乎 (zhihu.com)iCache和dCache一致性 - 知乎 (zhihu.com)C…

【SpringCloud——Elasticsearch(上)】

一、什么是Elasticsearch elasticsearch是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容。 二、倒排索引 1、正向索引 2、倒排索引 3、总结 三、ES和MySQL的区别 四、操作索引库 1、基于Kibana&#xff08;WEB界面&#xff09; 以下操作…

jvisualvm ssl远程连接JVM

jvisualvm 远程ssl连接 一、没认证的 JMX连接 (不安全) 这种方式&#xff0c;仅限于测试环境&#xff0c;可以这样操作。生产环境为了安全起见&#xff0c;还是要使用带认证的方式连接。 远程jar包服务 启动时 java -jar [jvm参数] xx.jar添加JVM参数 java -jar -Xmx512M -Xms2…

基于深度学习的高精度汽车自行车检测识别系统(PyTorch+Pyside6+模型)

摘要&#xff1a;基于深度学习的高精度汽车自行车检测识别系统可用于日常生活中检测与定位汽车自行车目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的汽车自行车目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目…

基于深度学习的高精度野生动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度野生动物检测&#xff08;水牛、犀牛、斑马和大象&#xff09;识别系统可用于日常生活中或野外来检测与定位野生动物目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的野生动物目标检测识别&#xff0c;另外支持结果可视…

Flutter问题记录 - TextField组件多行提示文本显示不全

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 梳理Flutter项目的过程中发现还有一些遗留的TODO没处理&#xff0c;其中有一个和TextField组件相关。 开发环境 Flutter: 3.10.1Dart: 3.0.1 问题描述 TextField组件设置maxLines: null不限制行数&#xff0c;同时…

【文章学习系列之模型】SCALEFORMER

本章内容 文章概况模型结构主要方法多尺度框架跨尺度标准化模型输入编码损失函数 实验结果消融实验跨尺度标准化自适应损失函数 总结 文章概况 《SCALEFORMER: ITERATIVE MULTI-SCALE REFINING TRANSFORMERS FOR TIME SERIES FORECASTING》是2023年发表于ICLR上的一篇论文。作…

硬件工程师-BUCK开关电源设计

一、电感的伏安特性 电感线圈通电之后&#xff0c;会产生磁场&#xff0c;磁场是有一定极性的&#xff0c;而且磁场分布&#xff0c;是一个封闭的回路。在线圈的内部磁力线是比较密集的&#xff0c;磁场的强度是比较强的&#xff0c;外面空气中的的这个磁力线是比较稀疏的&…

【Unity3D】调整屏幕亮度、饱和度、对比度

1 屏幕后处理流程 调整屏幕亮度、饱和度、对比度&#xff0c;需要使用到屏幕后处理技术。因此&#xff0c;本文将先介绍屏幕后处理流程&#xff0c;再介绍调整屏幕亮度、饱和度、对比度的实现。 屏幕后处理即&#xff1a;渲染完所有对象后&#xff0c;得到一张屏幕图像&#xf…

Centos6.5环境Nginx 1.16.1升级到1.24.0版本

一、背景 2023年4月11日&#xff0c;官方发布了Nginx最新稳定版&#xff0c;版本号为 1.24.0。该版本是基于1.23.x&#xff08;1.23.0 - 1.23.4&#xff09;开发版的Bug修复&#xff0c;以及一些新特性的加入&#xff0c;而形成的稳定版。安全部门扫描后&#xff0c;发现现场不…

车载ECU休眠唤醒-TJA1145

前言 首先&#xff0c;请教大家几个小小问题&#xff0c;你清楚&#xff1a; 什么是TJA1145吗&#xff1f;你知道休眠唤醒控制基本逻辑是怎么样的吗&#xff1f;TJA1145又是如何控制ECU进行休眠唤醒的呢&#xff1f;使用TJA1145时有哪些注意事项呢&#xff1f; 今天&#xff…

chatgpt赋能python:Python中如何输入中文——从安装到常见问题解决

Python中如何输入中文——从安装到常见问题解决 Python是一门广泛使用的编程语言&#xff0c;其优秀的开源性、易用性、灵活性以及庞大的生态圈也令越来越多的人选择Python。但是对于初学者来说&#xff0c;如何正确输入中文常常成为一个问题。本篇文章从安装、常见问题解决、…

LeetCode 560 和为 K 的子数组

LeetCode 560 和为 K 的子数组 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/subarray-sum-equals-k/description 博主Github&#xff1a;https://github.com/GDUT-Rp/LeetCode 题目&#xff1a; 给你一个整数数组 …