是否有后向引用的大写/小写版本的正则表达式替换术语?

Boh*_*ian 7 java regex string replace uppercase

假设我想将小写字符串更改为"标题大小写"; 每个单词的第一个字母大写的地方.可以replaceAll()通过在替换表达式中使用修饰符一次调用来完成吗?

例如,

str = str.replaceAll("\\b(\\S)", "???$1");
Run Code Online (Sandbox Code Playgroud)

哪里"???" 是一些折叠下一个字母大小写的表达式.

我已经看到这是其他工具(如textpad),\U将下一个字母折叠为大写.

Inf*_*ion 2

不可能用replaceAll。但你可以使用正则表达式和分割:

public String titleTextConversion(String text) {
    String[] words = text.split("(?<=\\W)|(?=\\W)");
    StringBuilder sb = new StringBuilder();
    for (String word : words) {
        if (word.length() > 0)
            sb.append(word.substring(0, 1).toUpperCase()).append(word.substring(1).toLowerCase());
    }
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)