【问题标题】:Replace capital letter with underscore + lowercase letter in Java?在Java中用下划线+小写字母替换大写字母?
【发布时间】:2014-05-14 18:36:22
【问题描述】:

有没有办法在 Java 中使用 RegEx 将所有大写字母替换为下划线,而相同的字母只替换为小写?

示例: getSpecialString -> get_special_string

【问题讨论】:

  • 这不是 Java 相关问题。你应该点击这个链接en.wikipedia.org/wiki/Regular_expression
  • @cagirici 为什么这不是与 Java 相关的问题?显然你不能用纯正则表达式做他要求的事情!
  • @MikyDinescu 实际上,您可以使用纯正则表达式和一些工具来做到这一点。这并不意味着应该删除java 标签!
  • @Jerry 我不知道您可以使用正则表达式执行大小写转换。但是只是重新阅读 Java 文档,Java 似乎不支持。我弄错了吗?
  • 我已经改变了问题。对不起大家。我的状态不是最好的。

标签: java regex


【解决方案1】:

试试看:

"getSpecialString".replaceAll("([A-Z])", "_$1").toLowerCase();

【讨论】:

  • 谢谢。我喜欢所有人都因为我在文档中找不到第一个字母标识符而抨击我。
  • 我喜欢 $ regex 模式
  • @assylias 先什么_
  • @dragostis 没有人抨击你。清楚地问你的问题。并且显示如果你已经付出了一些努力。
  • 如果您想将get_Special_string 更改为get_special_string,也可以考虑使用((?!<_)([A-Z]))
【解决方案2】:

underscore-java库中有一个snakeCase方法:

import com.github.underscore.U;

public class Main {

    public static void main(String[] args) {
        U.snakeCase("getSpecialString"); // -> get_special_string
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2014-10-19
    • 2014-06-20
    • 2015-07-28
    相关资源
    最近更新 更多