当前位置: 首页 > news >正文

split 分割字符串方法解析,substring 截取字符串方法解析;二者的作用和区别?使用时需要注意什么?

目录一. 摘要二. split 方法2.1 String[] split(String regix)2.2 String[] split(String regixint limit)2.3.1 当 int 0时会按照最大数量切割字符串2.3.2 当 int 0时此时就和第一个方法一样了等于没有传入值2.3.3 当 int 0时会按照实际传入的值切割字符串数量三. substring 方法3.1 String substring(int beginIndex)3.2 String substring(int beginIndexint endIndex)一. 摘要众所周知开发过程中我们时常会遇到需要切割字符串或截取字符串的需求例如按照特殊符号切割、或按照标点符号截取等。对于切割字符串方法和截取字符串方法Java为我们提供了 split 切割方法substring 截取方法下面小编就来说说二者的用法和区别。二. split 方法2.1 String[] split(String regix)此方法只传递一个 String 字符串参数就是想按照什么字符串来进行切割方法返回一个字符串数组。此外最最最重要的一点我们都知道一个 \ 是代表转义但小编在测试的过程中发现有一些特殊的符号时不能使用一个转义符号的转义甚至还会编译报错。例如 *这两个运算符^ 使用一个转义符转义时程序不报错但得到的结果是错误的但如果使用双斜线去进行转移则是正常的。这一点小编也觉得很奇妙。总之总结就是1\\ 双斜线转义符几乎可以正确转义所有的特殊字符目前没有遇到不能被双斜线转义的且转义切割后输出结果均正常2\ 可以转义部分特殊字符但有一些不能转义成功且会编译报错使用 \\ 即可避免此问题3一些简单字符例如 和 ! 即使不使用转义符也能正常得到结果4如果要做切割字符串操作建议使用 \\ 进行转义可以兼容转义几乎所有字符串这里小编将测试代码放到下面喜欢探究的小伙伴们可以粘贴测试一下哦public static void main(String[] args) { String str1 IDEA,MySQL,Redis,Docker,SpringBoot,Nacos,kafka,RabbitMQ,; String str2 IDEA、MySQL、Redis、Docker、SpringBoot、Nacos、kafka、RabbitMQ、; String str3 IDEA.MySQL.Redis.Docker.SpringBoot.Nacos.kafka.RabbitMQ.; String str4 IDEA。MySQL。Redis。Docker。SpringBoot。Nacos。kafka。RabbitMQ。; String str5 IDEA!MySQL!Redis!Docker!SpringBoot!Nacos!kafka!RabbitMQ!; String str6 IDEA?MySQL?Redis?Docker?SpringBoot?Nacos?kafka?RabbitMQ?; String str7 IDEA|MySQL|Redis|Docker|SpringBoot|Nacos|kafka|RabbitMQ|; String str8 IDEA(MySQL(Redis(Docker(SpringBoot(Nacos(kafka(RabbitMQ(; String str9 IDEA)MySQL)Redis)Docker)SpringBoot)Nacos)kafka)RabbitMQ); String str10 IDEAMySQLRedisDockerSpringBootNacoskafkaRabbitMQ; String str11 IDEA#MySQL#Redis#Docker#SpringBoot#Nacos#kafka#RabbitMQ#; String str12 IDEA$MySQL$Redis$Docker$SpringBoot$Nacos$kafka$RabbitMQ$; String str13 IDEA%MySQL%Redis%Docker%SpringBoot%Nacos%kafka%RabbitMQ%; String str14 IDEA^MySQL^Redis^Docker^SpringBoot^Nacos^kafka^RabbitMQ^; String str15 IDEAMySQLRedisDockerSpringBootNacoskafkaRabbitMQ; String str16 IDEA*MySQL*Redis*Docker*SpringBoot*Nacos*kafka*RabbitMQ*; String str17 IDEAMySQLRedisDockerSpringBootNacoskafkaRabbitMQ; String str18 IDEA-MySQL-Redis-Docker-SpringBoot-Nacos-kafka-RabbitMQ-; String str19 IDEA/MySQL/Redis/Docker/SpringBoot/Nacos/kafka/RabbitMQ; String str20 IDEAMySQLRedisDockerSpringBootNacoskafkaRabbitMQ; // 双斜线 \\ 转义特殊符号 String strArray[] str20.split(\\); int num 0; for (String s : strArray) { System.out.println(数组 num 索引值: s); num; } System.out.println(-----------------); System.out.println(数组长度: strArray.length); }那么我就直接运行上面的那个示例代码吧使用 str20使用单引号作为切割符号运行即可得到如下结果可以看到字符串已经被成功切割为8个字符串因为数组从 0 索引开始所以 7 索引处即为第八个字符串。2.2 String[] split(String regixint limit)此方法需要传递两个参数第一个参数一上面的方法一样都需要传递一个切割字符串第二个参数则是传入一个 int 类型的值。小编使用JDK8和JDK11均进行了测试发现 int 类型共分为以下三种情况2.3.1 当 int 0时会按照最大数量切割字符串这种情况当分隔符作为末尾尤为明显分隔符后面的也会作为一个空字符串如下运行图所示可以看到 8 索引处为空字符串但是使用第一个方法时就只切割出来8个字符串吗int 0之后切割出来9个字符串2.3.2 当 int 0时此时就和第一个方法一样了等于没有传入值因为 int 默认值就是0嘛若分隔符结尾则分隔符后面的不会再作为一个空字符串方法只会切割出来8个字符串如下图所示没有打印数组8索引值2.3.3 当 int 0时会按照实际传入的值切割字符串数量1直接看下图当 int 1时那不就等于没切割嘛直接输出字符串2当 int 2 时则只会切割出两个字符串第一个字符串正常切割后面的字符串作为一个整体如下图所示3而当 int 值大于最大可切割字符串数量时会按照 int 0的规则来进行切割即分隔符结尾则分隔符后面也作为一个空字符串我们现在知道最多可以切割出来9个字符串那么现在出传入一个20如下所示方法不会报错而是会按最大数量来进行切割三. substring 方法3.1 String substring(int beginIndex)该方法返回一个字符串方法传入一个 int 类型参数表示从字符串第X索引处开始截取一直截取到字符串最后一位。(注意String字符串索引从0开始)并且传入的 int 类型值必须为有效值如果 int 0 或者 int 最大索引值则会直接抛出异常public static void main(String[] args) { String str 0123456789; String str1 str.substring(3); System.out.println(str1); }运行上述代码如下即可得到正确结果3.2 String substring(int beginIndexint endIndex)substring 方法也可以传入两个参数即从哪一处索引开始截取到哪一索引处结束截取该方法的截取效果类似于我们数学上学的左闭右开区间即 [3,7)有数学印象的小伙伴们应该能看到。简单来说就是从第几位截取会把当前索引处的字符也截取下来到第几位索引处结束则不会截取结束索引处的字符而是截取到它的前一位。如下图所示我从索引3截取到索引7结束可以看到运行结果中3被截取下来了而7却没有。
http://www.gsyq.cn/news/1329108.html

相关文章:

  • 3大核心优势解析:APK Installer如何彻底改变Windows安装Android应用体验
  • 如何通过Play Integrity API实现Android应用安全防护的精准检测
  • 终极AMD Ryzen调试工具SMUDebugTool:免费开源的硬件掌控神器
  • Seraphine:英雄联盟玩家的智能BP助手与战绩查询工具完全指南
  • 2026年AI搜索优化服务商怎么选?深度对比GEO方案与品牌 - GrowthUME
  • TTK(Ops Test Tool Kit):昇腾CANN算子库的终极自动化测试框架完整指南
  • 2026年支模木方订做攻略:如何挑选靠谱厂家不踩坑 - GrowthUME
  • 3分钟搞定!Windows上安装Android应用的终极指南:APK Installer完全教程
  • 分享10款实测好用的降AI率软件(2026年3月版) - 殷念写论文
  • 5分钟学会在Windows电脑上安装Android应用:APK Installer终极指南
  • 储能BMS HiL测试:原理、价值与工程实践全解析
  • 保姆级教程:在Ubuntu 20.04上从零搭建K230目标检测训练环境(含Anaconda、nncase配置避坑指南)
  • 内容创作团队如何利用Taotoken聚合多模型生成多样化文案初稿
  • 2026年楼房支模优质厂家全解析:如何选择最合适的合作伙伴 - GrowthUME
  • 2026年家用呼吸机口碑排行榜:这5大品牌最值得信赖 - 天涯视角
  • 如何永久免费解锁Cursor Pro高级功能:完整解决方案指南
  • 厦门家装行业调研:金世琅——值得信任的全案整装公司 - GrowthUME
  • m4s-converter完整指南:快速将B站缓存视频转换为MP4格式
  • 如何用Flutter工具快速生成软件著作权代码文档
  • STM32流水灯实战:从GPIO驱动到PWM呼吸灯,嵌入式开发入门指南
  • CANN Ascend C Relu函数API
  • 3步搭建Label Studio标注平台:从零开始构建AI数据标注流水线
  • 一物一码在产品溯源中的实际案例,顶讯科技表现亮眼一“码”当先 - 奔跑123
  • 在长期运行的后台服务中感受Taotoken API的稳定性表现
  • HBM2E内存优化实战:从理论带宽到有效性能的系统性提升
  • C++-练习-109
  • MIT Cheetah-Software编译手记:搞定Qt5.10.0路径、LCM依赖与那些诡异的C++报错
  • LM317电源模块的“隐藏参数”与实战避坑:为什么你的空载电压总是不稳?
  • 告别JS逆向调试烦恼:WT-JS_DEBUG_V1.8.3保姆级安装与实战AES解密教程
  • 规避“造轮子”陷阱:企业级 Web 表格组件选型与 TCO 避坑指南