Java處理一個(gè)類中砸民,大量帶下劃線并且大寫的字段

private LocalDateTime PP_SENT_DATE;
需要寫成:
private LocalDateTime ppSentDate;

public Integer getDetainPermitDays() {
return detainPermitDays;
}
需要寫成:(先處理完字段,再生成set各谚、get方法)
@Column(name="detain_permit_days")
public Integer getDetainPermitDays() {
return detainPermitDays;
}

這個(gè)類大概有100多個(gè)這樣的字段,所以寫了一個(gè)方法:

// 寫完后到千,想起電視劇白眉大俠的片頭曲:傳說(shuō)中昌渤,他有著絕對(duì)精彩和浪漫的身手

public static void test() throws Exception {

//讀取文件(字符流)

        BufferedReader in = new BufferedReader(new InputStreamReader(

        new FileInputStream("C:\\Users\\tom\\Desktop\\TblCaseCommonBasic.java"),"utf-8"));// 這里主要是涉及中文

        //BufferedReader in = new BufferedReader(new FileReader("d:\\1.txt")));

        //寫入相應(yīng)的文件

        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(

        new FileOutputStream("C:\\Users\\tom\\Desktop\\2.txt"),"utf-8"));

        //BufferedWriter out = new BufferedWriter(new FileWriter("d:\\2.txt"));

        //讀取數(shù)據(jù)

        //循環(huán)取出數(shù)據(jù)

        String str = null;

        while ((str = in.readLine()) != null) {

            System.out.println(str);



            // 處理每一行

            str = line(str);

            if(str.contains("\n")) {

            String[] split = str.split("\n");

            out.write(split[0]);

            out.newLine();

            out.write(split[1]);

            out.newLine();

            }else {

            out.write(str);

            out.newLine();

            }



            //寫入相關(guān)文件

//            out.write(str);

//            out.newLine();

        }



        //清楚緩存

        out.flush();

        //關(guān)閉流

        in.close();

        out.close();

}

public static String line(String a) {

// String a = "private LocalDateTime PP_SENT_DATE;//    DATE    行政處罰繳款書送達(dá)日期";

// String a = "public Integer getDetainPermitDays() {";

if(a.contains(";") && a.contains("private")) {

String[] split = a.split(";");

// 找到想要處理的字符串

String a1 = split[0]; // private LocalDateTime PP_SENT_DATE

int lastIndexOf = a1.lastIndexOf(" ");

//  System.out.println("lastIndexOf:"+lastIndexOf);

String substring = a1.substring(lastIndexOf+1);

//  System.out.println("substring:"+substring);

// 已經(jīng)找到憔四,要處理該字符串膀息,處理substring PP_SENT_DATE

substring = substring.toLowerCase();// pp_sent_date

if(substring.contains("_")) {

String[] split2 = substring.split("_");

StringBuilder sb = new StringBuilder();

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

if(i==0) {

sb.append(split2[i]);

}else {

char charAt = split2[i].charAt(0);

String upperCase = String.valueOf(

split2[i].charAt(0)).toUpperCase();

sb.append(upperCase); // 去掉下劃線,后面的字符大寫

String substring2 = split2[i].substring(1);

sb.append(substring2);// 不要忘了后面的字符

}

}

substring=sb.toString();

}

// 處理完之后了赵,整理出結(jié)果

StringBuilder sb = new StringBuilder();

sb.append(a1.substring(0, lastIndexOf)).append(" ").append(substring).append(";");

if(split.length > 1) { // 有這樣的行潜支,分號(hào)后面沒(méi)有內(nèi)容:private String name;

sb.append(split[1]);

}

//  System.out.println("最終結(jié)果:");

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

return sb.toString();

/*

* public String getCompanyName() {

return companyName;

}

public Integer getDetainPermitDays() {

return detainPermitDays;

}

*/

}else if(a.contains("get") && a.contains("public")){

// public Integer getDetainPermitDays() {

StringBuilder asb = new StringBuilder();

int i1 = a.indexOf("get");

int i2 = a.indexOf("()");

String substring = a.substring(i1+3, i2); // DetainPermitDays

//  System.out.println(substring);

char[] charArray = substring.toCharArray();

int sum = 0;

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

if(charArray[i]>='A' && charArray[i]<='Z') {

sum++;

}

}

//  System.out.println("sum:"+sum);

StringBuilder sb = new StringBuilder();

if(sum >= 2) {

String s = String.valueOf(charArray[0]).toLowerCase();

sb.append(s);

// 有兩個(gè)大寫字母,需要加下劃線

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

if(charArray[i]>='A' && charArray[i]<='Z' && i > 0) {

// 大寫轉(zhuǎn)為小寫柿汛,并且前面加下劃線

String lowerCase = String.valueOf(charArray[i]).toLowerCase();

sb.append("_").append(lowerCase);

}else {

if(i > 0) {

sb.append(charArray[i]);

}

}

}

}

// 返回結(jié)果 @Column(name="citizen_sex")

if(sb.toString().length() > 0) { // 一個(gè)單詞的不需要加

asb.append("    @Column(name=\""+sb+"\")").append("\n");

}

StringBuilder ss = asb.append(a);

String lowerCase = ss.toString();

//  System.out.println(lowerCase);

return lowerCase;

}else {

return a;

}

}
···
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末冗酿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子络断,更是在濱河造成了極大的恐慌裁替,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件貌笨,死亡現(xiàn)場(chǎng)離奇詭異弱判,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)锥惋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門昌腰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人净刮,你說(shuō)我怎么就攤上這事剥哑。” “怎么了淹父?”我有些...
    開(kāi)封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵株婴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我暑认,道長(zhǎng)困介,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任蘸际,我火速辦了婚禮座哩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粮彤。我一直安慰自己根穷,他們只是感情好姜骡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屿良,像睡著了一般圈澈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尘惧,一...
    開(kāi)封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天康栈,我揣著相機(jī)與錄音,去河邊找鬼喷橙。 笑死啥么,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贰逾。 我是一名探鬼主播悬荣,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼似踱!你這毒婦竟也來(lái)了隅熙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤核芽,失蹤者是張志新(化名)和其女友劉穎囚戚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體轧简,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驰坊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哮独。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拳芙。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖皮璧,靈堂內(nèi)的尸體忽然破棺而出舟扎,到底是詐尸還是另有隱情,我是刑警寧澤悴务,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布睹限,位于F島的核電站,受9級(jí)特大地震影響讯檐,放射性物質(zhì)發(fā)生泄漏羡疗。R本人自食惡果不足惜迁酸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一轧邪、第九天 我趴在偏房一處隱蔽的房頂上張望团赏。 院中可真熱鬧豁翎,春花似錦、人聲如沸毡们。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至午乓,卻和暖如春站宗,著一層夾襖步出監(jiān)牢的瞬間闸准,已是汗流浹背益愈。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夷家,地道東北人蒸其。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像库快,于是被迫代替她去往敵國(guó)和親摸袁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • DAY 05 1义屏、 public classArrayDemo { public static void mai...
    周書達(dá)閱讀 666評(píng)論 0 0
  • 本文是我自己在秋招復(fù)習(xí)時(shí)的讀書筆記靠汁,整理的知識(shí)點(diǎn),也是為了防止忘記闽铐,尊重勞動(dòng)成果蝶怔,轉(zhuǎn)載注明出處哦!如果你也喜歡兄墅,那...
    波波波先森閱讀 831評(píng)論 1 6
  • java中String的常用方法 1踢星、length()字符串的長(zhǎng)度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,053評(píng)論 0 10
  • 貪心算法 貪心算法總是作出在當(dāng)前看來(lái)最好的選擇。也就是說(shuō)貪心算法并不從整體最優(yōu)考慮隙咸,它所作出的選擇只是在某種意義上...
    fredal閱讀 9,231評(píng)論 3 52
  • 且問(wèn)那夢(mèng)里一樣的青衣是哪個(gè)人五督? 但說(shuō)那是戲里唱的藏否、曲里哼的、劇里演的充包。 羨慕啊副签,戲里的依人;感慨啊误证,現(xiàn)實(shí)的風(fēng)塵继薛。 ...
    木土有阿杜閱讀 581評(píng)論 1 3