Java中分割字符串的两种方法实例详解

发布时间 - 2026-01-10 21:58:35    点击率:

前言

相信大家应该都知道在java编程中,有时候我们需要把一个字符串按照某个特定字符、字母等作为截点分割这个字符串,这样我们就可以使用这个字符串的一部分或者把所有截取的内容保存到数组里等操作。下面这篇文章就给大家分享了两种分割的方法,下面来一起看看吧。

一、java.lang.String 的 split() 方法, JDK 1.4 or later

public String[] split(String regex,int limit)

示例代码

public class StringSplit {
 public static void main(String[] args) {
  String sourceStr = "1,2,3,4,5";
  String[] sourceStrArray = sourceStr.split(",");
  for (int i = 0; i < sourceStrArray.length; i++) {
   System.out.println(sourceStrArray[i]);
  }

  // 最多分割出3个字符串
  int maxSplit = 3;
  sourceStrArray = sourceStr.split(",", maxSplit);
  for (int i = 0; i < sourceStrArray.length; i++) {
   System.out.println(sourceStrArray[i]);
  }
 }
}

输出结果:

1
2
3
4
5
1
2
3,4,5

split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:

public class StringSplit {
 public static void main(String[] args) {
  String value = "192.168.128.33";
  // 注意要加\\,要不出不来,yeah
  String[] names = value.split("\\.");
  for (int i = 0; i < names.length; i++) {
   System.out.println(names[i]);
  }
 }
}

split分隔符总结

     1.字符"|","*","+"都得加上转义字符,前面加上"\\"。

     2.而如果是"\",那么就得写成"\\\\"。

     3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

二、java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 类允许应用程序将字符串分解为标记。StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。

代码示例

public class StringSplit {
 public static void main(String[] args) {
  String ip = "192.168.128.33";
  StringTokenizer token=new StringTokenizer(ip,"."); 
  while(token.hasMoreElements()){ 
   System.out.print(token.nextToken()+" "); 
  }

 }
}

但是StringTokenizer对于字符串"192.168..33"的分割,返回的字符串数组只有3个元素,对于两个分隔符之间的空字符串会忽略,这个要慎重使用。

但是String.splitString.split是用正则表达式匹配,所以不使用KMP字符串匹配算法)用的都是按顺序遍历的算法,时间复杂度O(m*n),较高,所以性能上,StringTokenizer好很多,对于频繁使用字符串分割的应用,例如etl数据处理,使用StringTokenizer性能可以提高很多。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# java中分割字符串  # java字符串截取  # java分割字符串成两个  # java字符串常用操作方法(查找、截取、分割)  # java 字符串分割的三种方法(总结)  # Java中实现String字符串分割的3种方法  # Java用split分割含一个或多个空格的字符串案例  # java用split分割字符串的一个有趣现象  # java中简单的截取分割字符串实例  # java分割字符串多种方法(附例子)  # 分隔符  # 可以用  # 中有  # 这篇文章  # 的人  # 都是  # 成了  # 多个  # 最多  # 两种  # 遍历  # 较高  # 就把  # 数据处理  # 正则表达式  # 就得  # 都得  # 看看吧  # 就给  # 使用这个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何挑选最适合建站的高性能VPS主机?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Python3.6正式版新特性预览  iOS验证手机号的正则表达式  如何在Windows服务器上快速搭建网站?  Laravel如何配置任务调度?(Cron Job示例)  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  原生JS获取元素集合的子元素宽度实例  如何在香港服务器上快速搭建免备案网站?  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在宝塔面板中创建新站点?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何用JavaScript实现文本编辑器_光标和选区怎么处理  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  图册素材网站设计制作软件,图册的导出方式有几种?  大型企业网站制作流程,做网站需要注册公司吗?  iOS中将个别页面强制横屏其他页面竖屏  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何在万网自助建站中设置域名及备案?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何利用DOS批处理实现定时关机操作详解  Laravel如何生成URL和重定向?(路由助手函数)  如何正确下载安装西数主机建站助手?  如何注册花生壳免费域名并搭建个人网站?  黑客如何通过漏洞一步步攻陷网站服务器?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  中山网站制作网页,中山新生登记系统登记流程?  香港服务器WordPress建站指南:SEO优化与高效部署策略  Android中AutoCompleteTextView自动提示  详解MySQL数据库的安装与密码配置  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  JavaScript如何操作视频_媒体API怎么控制播放  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  html如何与html链接_实现多个HTML页面互相链接【互相】