正则表达式 - 用大写字母替换下划线小写

eme*_*ava 8 java regex

我想知道是否有一个正则表达式模式,我可以用来将一个下划线和一个小写字母的模式转换为一个大写字母.我正在尝试从SQL语句为java bean生成字段名.目前DB列是

load_id,policy_id,policy_number
Run Code Online (Sandbox Code Playgroud)

但我想要java字段名称

loadId,policyId,policyNumber
Run Code Online (Sandbox Code Playgroud)

我试过这个正则表达式小提琴

anu*_*ava 9

您可以使用:

String s = "load_id,policy_id,policy_number";
Pattern p = Pattern.compile( "_([a-zA-Z])" );
Matcher m = p.matcher( s );
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, m.group(1).toUpperCase());
}
m.appendTail(sb);
System.out.println(sb.toString()); // loadId,policyId,policyNumber
Run Code Online (Sandbox Code Playgroud)


Pau*_*gas 8

也许你想使用谷歌番石榴:

代码:

import static com.google.common.base.CaseFormat.LOWER_CAMEL;
import static com.google.common.base.CaseFormat.LOWER_UNDERSCORE;

public class Main {
    public static void main(String[] args) {
        String str = "load_id,policy_id,policy_number";
        for(String columnName : str.split(",")) {
            System.out.println(LOWER_UNDERSCORE.to(LOWER_CAMEL, columnName));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

loadId
policyId
policyNumber
Run Code Online (Sandbox Code Playgroud)