将SQL格式转换为java格式的正则表达式

问题描述:

我正在尝试将sql属性转换为java格式。 让我们来举个例子:我想将“p_start_date”更改为“pStartSate”。将SQL格式转换为java格式的正则表达式

我试着使用

String var = "p_start_date"; 
var.replaceAll("(_[a-z])\1", "([A-Z])\1"); 

Pattern pattern = Pattern.compile("([a-z0-9]+_)*"); 
     Matcher matcher = pattern.matcher(var); 


    if (matcher.find()) { 
     // Get all groups for this match 
     //System.out.println(matcher.groupCount()); 
     for (int i=0; i<=matcher.groupCount(); i++) { 
      String groupStr = matcher.group(i); 
      System.out.println(groupStr); 
     } 
    } 

但两者不工作

+0

你为什么需要它?如果你想从表中创建java对象,你可以使用ORM框架。 – Simeon 2012-08-08 09:05:38

+0

我在我的JEE项目中使用命名查询,并返回一个DTO。这就是为什么我使用这种常规性 – 2012-08-08 09:09:54

+0

@Simeon你有什么建议吗? – 2012-08-08 09:24:43

这是你在找什么?

String var = "p_start_date"; 

Pattern pattern = Pattern.compile("_([a-z])"); 
Matcher matcher = pattern.matcher(var); 

StringBuffer sb=new StringBuffer(); 
while(matcher.find()) { 
    matcher.appendReplacement(sb, matcher.group(1).toUpperCase()); 
} 
matcher.appendTail(sb); 

System.out.println(sb); 

输出:pStartDate

+0

请不要在使用StringBuilder时使用StringBuffer。 – 2012-08-13 08:03:00