String解析及其方法|天天观速讯
1.前言2.什么是字符串(String)3.字符串(String)的两种创建方式及其区别4.字符串(String)的方法及其部分原码解析5.字符串(String)的弊端
1.前言String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享
2.什么是字符串(String)String类表示字符串,在创建之后不能被更改,可用于检查序列的单个字符,搜索字符串,提取字符串,创建字符串副本并将所有字符串全部转换为大写或小写。
(资料图片)
3.字符串(String)的两种创建方式及其区别字符串有两种创建方式,分别为直接赋值和构造方法。字符串在创建之后便不会被更改,对于字符串内容的操作都会新创建一个字符串对象
1.直接复制以双引号内的数据作为字符串存储的数据
String str="hello world";
2.四种构造方法1.新建一个空字符串初始化一个新创建的 String 对象,使其表示一个空字符序列
String str1=new String();
空字符串和null的区别String str2=new String();String str3=null;
空字符串和null的值都为空空字符串表示字符串对象引用的值为空,如上str2的值为空,str1指向字符串的内存空间null表示引用为空,如上str3的引用为空,str3没有指向任何空间在实际中作用对字符串的校验过程中,要考虑字符串值的两种"空",既要考虑字符串引用对象值是否为空,又要考虑引用对象是否为空
2.新建String的字符串初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本
String str4=new String("hello world");
生成的str4是对应参数字符串的副本,但str4是对应新创建的对象
3.新建字符数组的字符串,输出时会自动将数组拼接成字符串分配一个新的 String,使其表示字符数组参数中当前包含的字符序列
char[] chars={"a","b","c"};String str5=new String(chars);
适用场景:用于改变字符串的数据由于字符串在创建之后不能被修改,而字符串没有相应的改变字符串的方法,但是由获取对应索引的数据和将数据转化为字符数组的形式,通过该构造方法可以将字符串的数据进行修改
4.新建字节数组的字符串,输出时会自动将数组拼接成字符串通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String
byte[] bytes={97,98,99};String str6=new String(bytes);
使用场景:用于网络中的数据传输,将字节信息转化为字符串时使用网络中的数据是字节类型,通过该方法可以将字节信息转化为字符串形式再进行处理
3.两者的区别1.存储直接赋值:直接赋值进入栈内存中,会进入堆内存的串池中查看是否有相同地址的数据,没有便创建,有的话便复用构造方法:每new一次便会在堆内存中开辟一个新的空间,生成新对象,不同对象的地址不同
2.字符串的对比结果为== 用于比较地址是否相等,equals用于比较具体的值
4.字符串(String)的方法及其部分原码解析1. boolean equals(Object anObject)给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false源码解释
public boolean equals(Object anObject) { //比较当前对象(this)与给定对象(anObject)的地址是否相等 if (this == anObject) { return true; }//判断anObject是否是String的实例 if (anObject instanceof String) {//将anObject强制转化为String String anotherString = (String)anObject;//获取当前对象对应的字符数据的长度 int n = value.length;//判断n与给定对象对应的字符数组的长度是否相等 if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0;//比较字符数组对应位置的数据是否相等 while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
2.char charAt(int index)返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引
public char charAt(int index) {//判断index是否在给定的索引范围之内,若不在则抛出字符串角标越界 if ((index < 0) || (index >= value.length)) { throw new StringIndexOutOfBoundsException(index); }//如果在对应的范围内,则获取对应的字符数组对应缩影的数据 return value[index]; }
3.public int length()返回此字符串的长度
public int length() {//返回对应对象字符数组的长度 return value.length; }
4.public String concat(String str)将指定字符串连接到此字符串的结尾。如果参数字符串的长度为 0,则返回此 String 对象。否则,创建一个新的 String 对象,用来表示由此 String 对象表示的字符序列和参数字符串表示的字符序列连接而成的字符序列
public String concat(String str) { //判断str是否为空 if (str.isEmpty()) { return this; } int len = value.length; int otherLen = str.length();//复制当前对象的值,并指定长度为len+otherLen char buf[] = Arrays.copyOf(value, len + otherLen);//将str的值添加到buf之后,getChars()的底层是System的arraycopy() str.getChars(buf, len); return new String(buf, true); }
通常使用"+",和concat()的底层原理是一样
5.public String substring(int beginIndex,int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex
public String substring(int beginIndex, int endIndex) { //判断给定的起始索引和终止索引是否符合要求 if (beginIndex < 0) { throw new StringIndexOutOfBoundsException(beginIndex); } if (endIndex > value.length) { throw new StringIndexOutOfBoundsException(endIndex); } int subLen = endIndex - beginIndex;//判断终止索引是否大于起始索引 if (subLen < 0) { throw new StringIndexOutOfBoundsException(subLen); }//判断起始索引和终止索引是否对应于字符串对应的字符数组的起始位置和终止位置,如果是,便返回对应的字符串,否则便返回索引的数据 return ((beginIndex == 0) && (endIndex == value.length)) ? this: new String(value, beginIndex, subLen); }
方法的重载public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
6.public String replace(char oldChar,char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。如果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,它所表示的字符序列除了所有的 oldChar 都被替换为 newChar 之外,与此 String 对象表示的字符序列相同
public String replace(CharSequence target, CharSequence replacement) { //运用正则表达式对字符串进行替换 return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(this).replaceAll(Matcher.quoteReplacement(replacement.toString())); }
5.字符串(String)的弊端由于字符串一旦创建后便不能更改,因此在进行字符串的拼接过程中,会不断产生新的对象,对于内存的消耗大,同时,进行字符串的反转,过程复杂,内存的消耗大,因此需要其他的字符串类
标签:
推荐
财富更多》
-
头条:专家建言山西特色专业镇:借会展兴“镇” 促产业集聚
专家建言山西特色专业镇:借会展兴“镇...
-
沈铁:暑运预计发送旅客4090万人次|环球精选
沈铁:暑运预计发送旅客4090万人次---中...
-
多轮驱动 后疫情时代中非农业合作显现新特征
多轮驱动后疫情时代中非农业合作显现新...
-
【世界聚看点】HICOOL 2023全球创业大赛医药健康赛道初赛开启
HICOOL2023全球创业大赛医药健康赛道初...
-
粮农组织等机构联手合作 聚焦总结分享中国农业发展成功经验|全球快资讯
粮农组织等机构联手合作聚焦总结分享中...
动态更多》
热点
- realme10系列正式宣布 采用双曲面屏正面顶部居中挖孔
- 五菱全新微型电动车内饰官图发布 座椅采用星际形打孔工艺
- 努比亚Z40星空典藏版正式开售 采用微米级油画笔触纹理技术
- iQOO11系列正式官宣 首批搭载骁龙8Gen2机型之一
- 海信34英寸带鱼屏显示器发布 支持165Hz刷新率
- OPPO明年将商用240W超级闪充 新一代电芯支持更高倍率充电
- 第一款Android手机渲染图曝光 横向滑盖设计和全尺寸键盘
- 吉利首款纯电皮卡11月9日上市 车辆续航里程超过610公里
- 努比亚Z40SPro星空典藏版正式公布 堪称窄边框天花板
- vivo无线运动耳机2今日正式上市 首销只要119元
- 焦点!淄滨两市妇联帮扶协作 搭建企业合作平台
- ai里面怎么取消投影效果_ai怎么取消投影
- 最前线|《琶洲产业互联网发展报告》发布:产业互联网正在助力数字经济进入下半场 即时
- 环球热点评!中国海军第43批护航编队抵达加纳进行友好访问
- 商务部:中国对接CPTPP规则开展先行先试 每日简讯
- 领克汽车进入中国澳门市场
- 美国5月核心PCE物价指数同比升4.6%-焦点速递
- 博士团打卡广州南沙 招才引智助人才在穗发展
- 环球即时:第十七届欧洽会开幕 聚焦中欧经贸合作新趋势
- 世界新动态:中泰证券:拟定增募资不超60亿元
- 1-5月中国销售彩票同比增长50%|独家焦点
- 佳源科技7月7日深交所首发上会 拟募资9.11亿元|焦点滚动
- 威门药业选举杨槐为公司董事长2022年公司净利6129.1万
- 莫里·科内(关于莫里·科内的简介)|全球新资讯
- 借力西博会,助推“川藏铁路第一城、绿色发展示范市”建设|天天新消息
- 汇景控股(09968):一直与专业顾问合作以遵守复牌指引及上市规则 继续停牌 天天消息
- 观天下!上交所:本周对杭州热电等严重异常波动股票进行重点监控
- 当前速看:华西股份涨6.84% 机构净买入1.49亿元
- 安井食品跌6.43% 机构净卖出1.38亿元_世界热文
- 外汇局:截至2023年3月末,我国全口径(含本外币)外债余额171169亿元
- 中国-非洲贸易指数首次对外发布 成中非贸易发展“晴雨表”
- 报告:德国去年资本外逃创纪录 欧洲最大经济体或已开启去工业化进程
- 【天天聚看点】稷下新论:涵养实实在在的胸襟
- “董事长举荐制” 破解专精特新人才评价之困(一) 世界热讯
- 全环境立德树人专题协商座谈会召开_世界速看料
- 外汇局:2023年一季度我国经常账户顺差5575亿元|焦点消息
- 淄博市—俄罗斯(诺夫哥罗德州)经贸洽谈会举行
- 当前速读:副市长沙向东上线“12345市长在线”
- 最好吃的卤肉配方_卤肉配方
- 福晶科技涨停 机构净买入5276万元
- 移为通信参加2023MWC上海,展出多款新品
- 环球看热讯:春立医疗跌2.74% 2021年上市募11.5亿华泰联合保荐
- 5月彩票销售同比增长超五成|世界时讯
- 慕思股份跌3.08% 去年募资15.6亿招商证券保荐 天天简讯
- 世界微头条丨今年海外找工作,难哭了多少留学生
- 环球快资讯丨为世界经济注入更多确定性力量——写在第十四届夏季达沃斯论坛闭幕之际
- 环球即时:北京办公楼市场还在低谷:新增需求不足,中关村租金降幅最大
- 知晓即行动:宫颈癌认知水平与接种意愿正相关
- 恒玄科技跌1.64% 2020年上市超募27.6亿元|全球时讯
- 注意!四方达将于7月17日召开股东大会-世界最资讯
- 智光电气:以1.28亿元增资控股西都(广东)电力投资有限公司 全球独家
- 全球新动态:掀起最嗨浪潮 北京国际燕京啤酒文化节今晚开幕
- 校园传奇之超级大脑_关于校园传奇之超级大脑概略|环球快资讯
- 趣链科技携手先阳新能源共同亮相“2023国际数字能源展”
- 速读:最高法发布全国海事审判典型案例 坚定维护海洋权益
- 中欧班列(武汉)今年开行量超去年全年
- 盘点胖东来商业版图 胖东来 胖 东来8页报告调查顾客与员工争执-世界热推荐
- 开源正正年内跌9.57%
- 理想汽车新增5座超充站:覆盖北京保定杭州等地
- 半导体板块涨1.52% 铜峰电子涨10.03%居首|环球快看
- 微软发布 Windows 11 AI 辅助功能 Windows Copilot 首个预览版
- 国元元泽1号年内跌8.89%-天天速讯
- 北京出台机器人新政 支持开发机器人强化AI大模型支撑-天天精选
- 财政部:前5月国有企业营业总收入同比增长6.2%
- 热血江湖手游发行商被强执4832万 龙图游戏被强制执行4832万-环球实时
- 每日热讯!模拟器怎么更换IP?改模拟器ip的方法
- 每日观察!喷砂机专用砂料如何选择?
- 咸亨国际:公司无人机相关产品及服务在公司整体营收占比非常小
- 今日报丨交通100老鹰表达力|放下执着,方能从容自在
- 5月安徽水果零售价格上涨明显-天天动态
- 微资讯!如何提升质量管理体系(如何提高质量管理水平)
- 天天动态:盛夏时节 八方来客 共享钟灵尼山与现代智慧碰撞的“饕餮盛宴”
- 环球最新:中国和缅甸新开一条国际航线
- 2023年中国科学院科普讲解大赛举办
- Bluu Seafood获得1750万美元A轮融资
- 世界实时:安徽酒灵获得天使轮融资五千万
- 微软必应聊天将提供AI炒股功能:可预判股价未来走势 当前报道
- 艾尔登法环新手应该怎么玩?艾尔登法环的地图碎片位置?
- 45万美元一张门票!维珍银河完成首次商业太空飞行-今日报
- 永劫无间怎么提升实力快?永劫无间怎么看帧数?
- 环球热消息:中国贸促会:4月全球经贸摩擦措施涉及金额同比下降21.4%
- 苹果网速显示设置怎么设置?苹果网速差怎么改善?
- 苹果12不能指纹解锁吗?苹果12的小圆点怎么调出来?
- 芯动联科上市首日涨75% 募资14.7亿一季度营收0.11亿
- 古墓丽影全支线任务怎么做?古墓丽影的季票有什么用?
- 明阳电气上市首日成交10亿 超募15.8亿申万宏源保荐 今日要闻
- 永劫无间秘境怎么加时间?永劫无间秘境符玉怎么获得?
- 今日16:00,淄博2023年初中学业水平考试成绩公布! 天天动态
- vivox90支持无线充电吗?vivox90有红外线功能吗?
- 玩游戏手机发热怎么解决?手机发热怎么降温最快?
- 快资讯:Mind Network 获得250万美元种子轮融资
- 奔驰召回2518辆进口G级汽车 奔驰召回2518辆隐患车辆
- 世界热讯:收评:三大指数集体收涨 电子化学品板块全天强势
- 安徽省马鞍山市市场监管局抽检食品69批次 5批次不合格
- 环球播报:隆基6月单晶硅片价格公示 “P型M10 150μm厚度”价格下调超30%
- 环球微动态丨中加紫金混合基金变更基金经理
- 填志愿别只看“985/211”,这些实力院校也不差! 全球百事通
- 基地班是什么意思(生命科学与技术基地班)-世界快资讯
- 广电运通:AI产业园工程已进入收尾阶段
- 微软推出AI购物工具:Bing和Edge上使用 可智能比价-微头条
- 即时焦点:抖音直播治理导流欺诈行为 5月以来回收5.6W+主播直播权限
- Meta 解释人工智能如何影响用户 Facebook 和 Instagram 上看到的内容
- 【世界聚看点】空调市场产销两旺
- 【天天新视野】中科三环:稀土永磁电机依然是新能源汽车驱动电机最优解
- 复合铜箔概念爆发,宝明科技、双星新材涨停,东威科技等大涨
- 天天热资讯!可持续发展助力价值共创,完美世界控股集团发布2022年度可持续发展报告
- 世界热点评!烽火电子拟收购陕西长岭电子科技98.3950%股权
- 北京海博思创科技股份有限公司坚持储能技术创新——为绿色发展蓄能_天天观天下
- CASA出国获200万天使轮融资
- 刚刚!淄博发布高温黄色预警信号
- 微软、英伟达等领投,Inflection AI完成13亿美元融资 全球头条
- 天天热议:园区升级担当新角色——来自江苏产业园区的调查
- 经济日报携手京东发布数据——“高颜值”蕴含大流量
- 全球贸易复苏之路崎岖不平
- 全球视点!安德利(605198)6月30日主力资金净卖出89.71万元
- 全球速讯:近八成受访青年选专业最看重就业前景
- 全球今日讯!主妇神探(关于主妇神探的基本详情介绍)
- 央视谈MWC大会,Flyme Auto手车互联!科技厂商确定方向
- 全球实时:消息称华为智选车将建汽车独立门店,问界生态产品集中销售
- 广东省深圳市消委会发布 “剧本杀”消费调查报告:消费者维权不畅 门店存安全隐患 全球热点
- 南土资产吴刚因行贿及操纵股价被抓? 公司回应
- 央视报道上海MWC展会,魅族出镜展现全新车机交互体验,现场好评如潮
- 微速讯:在太古可口可乐,读懂零售快消的数智化变革
- 国资委公布国企改革考核A级企业名单
- 当前视讯!K36 Therapeutics获得7000万美元B轮融资
- 金山办公与英伟达团队合作 加速WPS AI落地 快看点
- 淄博壹美整形“公益援助月”启动
- 华为智选车业务将设独立销售门店 世界快看
- 央视新闻报道!魅族技术为本届MWC亮点,展示未来车机交互方向
- 当前热议!锻长板 建生态 推动新一代信息技术产业高质量发展
- 行健智能完成数千万B轮融资-播资讯
- 天天消息!侧柏叶的功效与用法_侧柏叶的功效有哪些
- 如何刺激龟头会失禁_龟头怎么样才算小_观察
- 石家庄林地拆迁赔偿方式有哪些
- 36星将 |对话纪棠传媒崔磊:我们在做一件很有挑战的事情 环球报资讯