2012-08-08 169 views
0

我正在嘗試將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

回答

1

這是你在找什麼?

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