栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中的每个第3个逗号处分割一个字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中的每个第3个逗号处分割一个字符串

您可以尝试将

split
方法与
(?<=\G\d+,\d+,\d+),
正则表达式一起使用

演示版

String data = "0,0,1,2,4,5,3,4,6";String[] array = data.split("(?<=\G\d+,\d+,\d+),"); //Magic :) // to reveal magic see explanation below answerfor(String s : array){    System.out.println(s);}

输出:

0,0,12,4,53,4,6

说明

  • \d
    表示一个数字,与[0-9]相同,例如
    0
    3
  • \d+
    表示一个或多个数字,例如
    1
    23
  • \d+,
    表示一个或多个后跟逗号的数字,例如
    1,
    234,
  • \d+,\d+,\d+
    会接受三个数字,并且它们之间用逗号隔开
    12,3,456
  • \G
    表示最后一个匹配项,或者如果没有(如果是第一次使用)字符串的开头
  • (?<=...),
    是正向后看,它将匹配逗号
    ,
    ,该逗号
    (?<=...)
    前面也有描述的字符串
  • (?<=\G\d+,\d+,\d+),
    因此将尝试查找在其前面有三个数字的逗号,并且这些数字在其前面以字符串开头(如
    ^0,0,1
    您的示例)或之前匹配的逗号(例如
    2,4,5
    和)
    3,4,6

同样,如果您想使用其他字符,那么数字也可以使用其他字符集,例如

  • \w
    它将匹配字母字符,数字和
    _
  • \S
    不是空格的一切
  • [^,]
    一切不是逗号
  • … 等等。模式文档中的更多信息

顺便说一句,这种形式将在每3、5、7(以及其他奇数个)逗号上

split("(?<=\G\w+,\w+,\w+,\w+,\w+),")
分割,就像在每5个逗号上分割一样。

拆就每2,第4,第6,第8(和休息偶数)逗号,你将需要更换

+
{1,maxLengthOfNumber}
split("(?<=\G\w{1,3},\w{1,3},\w{1,3},\w{1,3}),")
拆就每4个逗号的时候号码可以有最多3个数字(0,00,12,000,123,412,999)。

要分割每个第二个逗号,您还可以

split("(?<!\G\d+),")
根据我之前的回答使用此正则表达式



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号