java 按 大写字母_用大写字母拆分字符串

回答(12)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

这是另一种正则表达式解决方案 . 该问题可以被称为“如何在执行拆分之前在每个大写字母之前插入空格”:

>>> s = "TheLongAndWindingRoad ABC A123B45"

>>> re.sub( r"([A-Z])", r" \1", s).split()

['The', 'Long', 'And', 'Winding', 'Road', 'A', 'B', 'C', 'A123', 'B45']

这具有保留所有非空白字符的优点,而大多数其他解决方案则不能 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

import re

filter(None, re.split("([A-Z][^A-Z]*)", "TheLongAndWindingRoad"))

要么

[s for s in re.split("([A-Z][^A-Z]*)", "TheLongAndWindingRoad") if s]

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

src = 'TheLongAndWindingRoad'

glue = ' '

result = ''.join(glue + x if x.isupper() else x for x in src).strip(glue).split(glue)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

不使用正则表达式或枚举的替代方法:

word = 'TheLongAndWindingRoad'

list = [x for x in word]

for char in list:

i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值