java实现单词替换_java – 正则表达式将空格和单词替换为单词的toFirstUpper

我试图使用正则表达式来更改以下字符串

String input = "Creation of book orders"

String output = "CreationOfBookOrders"

我尝试了以下期望用字替换空格和单词.

input.replaceAll("\\s\\w", "(\\w)");

input.replaceAll("\\s\\w", "\\w");

但是这里的字符串用字符’w’代替空格和单词而不是单词.

我无法使用任何WordUtils或StringUtils或类似的Util类.否则,我可以用空字符串替换所有空格并应用WordUtils.capitalize或类似方法.

如何(最好使用正则表达式)我可以从输入中获得上述输出.

最佳答案 我不认为你可以用String.replaceAll做到这一点.您可以在替换字符串中进行的唯一修改是插入由正则表达式匹配的组.

Matcher.replaceAll的javadoc解释了如何处理替换字符串.

你需要使用一个循环.这是一个简单的版本:

StringBuilder sb = new StringBuilder(input);

Pattern pattern = Pattern.compile("\\s\\w");

Matcher matcher = pattern.matcher(s);

int pos = 0;

while (matcher.find(pos)) {

String replacement = matcher.group().substring(1).toUpperCase();

pos = matcher.start();

sb.replace(pos, pos + 2, replacement);

pos += 1;

}

output = sb.toString();

(这可以更有效地完成,但它很复杂.)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值