在日常开发中,经常会用到字符串分割,一般使用split方法,但是这种简单的方法不能保留分割符号,于是自己动手造轮子,记录一个字符传分割方法,适配单个字符分割,多个字符分割,均可保留分割符。

具体实现代码如下:

public static void main(String[] args) {final String[] aEach = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\]\\[");System.out.println(aEach.length);final String[] aEach1 = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\{");System.out.println(aEach1.length);final String[] aEach2 = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\]\\[\\(");System.out.println(aEach2.length);}/*** 通过分隔符拆分句子,并保留分隔符** @return*/public static String[] splitSentence(String sentence, String chars) {//1. 定义匹配模式Pattern p = Pattern.compile(chars);Matcher m = p.matcher(sentence);//2. 拆分句子[拆分后的句子符号也没了]String[] words = p.split(sentence);String afterChars = chars.replace("\\", "");//3. 保留原来的分隔符if (afterChars.length() != 2) {if (words.length > 0) {int count = 0;while (count < words.length) {if (m.find()) {words[count] += m.group();}count++;}}} else {//chars.length() ==2if (words.length > 1) {int count = 0;String splitStr1 = afterChars.substring(0, 1);String splitStr2 = afterChars.substring(1, 2);while (count < words.length) {if (count == 0) {words[count] += splitStr1;} else if (count == words.length - 1) {words[count] = splitStr2 + words[count];} else {words[count] = splitStr2 + words[count] + splitStr1;}count++;}}}return words;}

运行结果:

  • 分隔符为2个字符

aEach:以双分隔符"]["切分:结果:[(WD1){D5}] 、   [(h7m0){h3}]  、 [(WD1){D5}]

  • 分割符为单个字符

aEach1:以双分隔符"}"切分:结果:[(WD1){D5}  、 ][(h7m0){h3}  、 ][(WD1){D5}  、]

  • 风格符为3个字符

aEach2:以双分隔符"][}"切分:结果:[(WD1){D5}][(  、 h7m0){h3}][(   、  WD1){D5}]

---------------------------------------------------------------------------------------------------------------------------------

幸福的人生,需要三种姿态:对过去,要淡;对现在,要惜;对未来,要信。

Java 字符串分割成数组,保留分隔符相关推荐

  1. oracle 分割字符成数组,oracle依据分隔符将字符串分割成数组函数

    oracle根据分隔符将字符串分割成数组函数 --创建表类型 create or replace type mytype as table of number; --如果定义成varchar --CR ...

  2. oracle 字符串分割成数组_oracle根据分隔符将字符串分割成数组函数

    --创建表类型 create or replace type mytype as table of number; --如果定义成varchar --CREATE OR REPLACE type my ...

  3. PHP中怎么把字符串分割成数组?

    经常会遇到要把字符串分割成数组的情况,在Java中只要调用split(",")方法就能把字符串分割成数组,在JS中也很简单同样也是调用split( "," )方 ...

  4. 分割成数组php字符串函数,PHP 分割字符串函数把字符串分割成数组示例

    这篇文章主要为大家详细介绍了PHP 分割字符串函数把字符串分割成数组示例,具有一定的参考价值,可以用来参考一下. 对PHP分割字符串函数把字符串分割成数组感兴趣的小伙伴,下面一起跟随512笔记的小编两 ...

  5. 前端JS数组问题: 数组去重, 字符串分割成数组, 数组拼接成字符串

    1. 数组去重: Array.from(new Set(arr_name)) let arr1 = ['张三','李四','王五','李四','赵六','张三'];let arr2 = Array.f ...

  6. java String中文字符串分割成数组 中文字符串分割成一定长度的字符串数组

    java String中文字符串分割成一定长度的字符串数组 /*** 几个字一组 变量控制 大于零有意义*/ int num = 6; /*** 待操作的字符串*/ String str = &quo ...

  7. java字符串拆分成数组_Java StringUtils字符串分割转数组的实现

    Java StringUtils字符串分割转数组的实现 发布于 2020-6-7| 复制链接 摘记: 我们在日常开发时会经常遇到将一个字符串按照指定的字符进行分割.这时,我们往往会想到使用str.sp ...

  8. c字符串分割成数组_leetcode第31双周赛第三题leetcode1525. 字符串的好分割数目

    leetcode1525. 字符串的好分割数目 给你一个字符串 s ,一个分割被称为 「好分割」 当它满足:将 s 分割成 2 个字符串 p 和 q ,它们连接起来等于 s 且 p 和 q 中不同字符 ...

  9. 把一个字符串分割成数组 php_PHP怎么将字符串拆分成数组

    在日常项目开发过程中,较长的字符串可能需要被拆分成数组形式,以便被展现或用于判断验证.那么将字符串拆分成数组,也很容易实现,我们可以直接通过PHP中的explode函数来进行拆分. 下面我们就通过简单 ...

最新文章

  1. flashcom中远程共享对象SharedObject的用法
  2. More Effective C++:理解new和delete
  3. 从AVL树的定义出发,一步步推导出旋转的方案。
  4. python 如何生成特定间隔数列?range()、numpy.arange()
  5. [云炬创业基础笔记]第五章创业机会评估测试13
  6. A*算法的c++实现+opencv动态显示
  7. 设置Ext tab的宽度自动适应
  8. 协议簇:TCP 解析: 连接断开
  9. LeetCode刷题(4)
  10. linux suse最新版本,SUSE Linux Enterprise Server 15 正式发布
  11. 华为p40鸿蒙系统价格有好高,华为P40Pro参数逐步被确定,鸿蒙系统或成最大亮点,价格更给力!...
  12. steam一键授权工具_超实用小工具!一键将PC其它平台的游戏导入Steam
  13. 络达1562系统深度睡眠后RTC唤醒应用
  14. 洛谷 P3403 跳楼机
  15. TMS320F28335与10位数模转换器TLC5615的SPI通讯问题1(DAC数模转换原理篇)
  16. 8421码 BCD码
  17. 解决ERROR: Cannot uninstall ‘llvmlite‘. It is a distutils installed project and thus we cannot accurat
  18. Portapack应用开发教程(十五) APRS接收
  19. 跟着Nature学绘图 水循环图
  20. Axure RP 从入门到精通(四十二)案例 - 淘宝搜索框

热门文章

  1. css之条纹边框的实现
  2. cad放大_我的天!CAD放大图还可以这样画!
  3. android vivo手机 更换应用图标后没生效
  4. 如何在Mac电脑上取消Apple Music订阅?
  5. 信用评分卡A卡、B卡、C卡区别
  6. 数据分析上千部动漫作品
  7. IOS-读写文件大全
  8. 有趣的QQ签名(值得借鉴哦 !)
  9. Android绘图机制 Demo(简单完成美图秀秀的滤镜)
  10. 从互联网金融平台下架银行存款产品,看金融监管为何越来越严?