當前位置:編程學習大全網 - 源碼下載 - 怎麽用java實現駝峰命名法與數據庫命名法的相互轉換

怎麽用java實現駝峰命名法與數據庫命名法的相互轉換

手敲的,給個辛苦分吧。。。

package?test;

import?java.util.ArrayList;

import?java.util.List;

public?class?Test?{

public?static?void?main(String[]?args)?{

//testing?for?data?base?column-key?to?java?field

String[]?dbKeys?=?{"id",?"user_age",?"user_addr_"};

Test?t?=?new?Test();

t.convertToJava(dbKeys);

System.out.println("-----------------------------------");

//testing?for?Java?field?to?data?base?column-key

String?javaFieldNames[]?=?{"id","userAge","userHomeAddr"};

t.getDBKey(javaFieldNames);

}

/*

?*?Java?field?to?data?base?column-key

?*/

private?void?getDBKey(String...?javaFieldNames){

if(javaFieldNames?!=?null?&&?javaFieldNames.length?>?0){

for(String?name?:?javaFieldNames){

StringBuffer?buffer?=?new?StringBuffer();

char[]?array?=?name.toCharArray();

List<Integer>?insertIndexes?=?new?ArrayList<>();

for(int?i=0;i<array.length;i++){

Character?c?=?array[i];

if(i?!=?0?&&?Character.isUpperCase(c)){

insertIndexes.add(i);

}

}

if(insertIndexes.size()?>?0){

int?flag?=?0;

for(int?j=0;j<insertIndexes.size();j++){

String?word?=?toLowercase4FirstLetter(name.substring(flag,?insertIndexes.get(j)));

buffer.append(word).append("_");

flag?=?insertIndexes.get(j);

}

String?last?=?toLowercase4FirstLetter(name.substring(flag));

buffer.append(last);

System.out.println(buffer.toString());

}?else?{

System.out.println(name);

}

}

}

}

private?String?toLowercase4FirstLetter(String?word){

if(word?!=?null?&&?word.length()?>?0){

String?firstLetter?=?word.substring(0,1);

String?others?=?word.substring(1);

return?firstLetter.toLowerCase()?+?others;

}else{

return?"";

}

}

/*

?*?data?base?column-key?to?java?field

?*/

public?void?convertToJava(String...?dbKeys)?{

if(dbKeys?!=?null?&&?dbKeys.length?>?0){

for(String?key?:?dbKeys){

String[]?words?=?key.split("_");

String?result?=?toUppercase4FirstLetter(words);

System.out.println(result);

}

}

}

private?String?toUppercase4FirstLetter(String...?words){

StringBuffer?buffer?=?new?StringBuffer();

if(words?!=?null?&&?words.length?>?0){

for(int?i=0;i<words.length;i++){

String?word?=?words[i];

String?firstLetter?=?word.substring(0,?1);

String?others?=?word.substring(1);

String?upperLetter?=?null;

if(i?!=?0){

upperLetter?=?firstLetter.toUpperCase();

}?else?{

upperLetter?=?firstLetter;

}

buffer.append(upperLetter).append(others);

}

return?buffer.toString();

}

return?"";

}

}

  • 上一篇:類似於變形金剛這種酷炫造型的模型人物還有哪些
  • 下一篇:求傳奇排行榜,有哪些比較靠前的
  • copyright 2024編程學習大全網