java 將大寫欄位全部改為小寫並增加下劃線
阿新 • • 發佈:2021-06-16
前言
因為一些原因,需要使用到mybatsPlus 資料庫欄位的駝峰,必須是下劃線,實體類裡則可以使用駝峰命名
貼程式碼
/** * Create by wanghongliang * 2021/6/16 10:15 **/ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; /** * TODO * * @author wanghongliang * @version 1.0 * @desc * @date 2021/6/16 10:15 */ public class AzTest { public static void main(String[] args) { readStream(); // System.out.println(upperCharToUnderLine("autoGenSerialNumFormat")); } public static String readStream() { Path filePath = Paths.get("C:/Users/Administrator/Desktop", "item_test.txt"); try (Stream lines = Files.lines(filePath)) { lines.forEach(E -> System.out.println(upperCharToUnderLine(E.toString())) ); // lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace();//只是測試用例,生產環境下不要這樣做異常處理 } return ""; } public static String upperCharToUnderLine(String param) { Pattern p = Pattern.compile("[A-Z]"); if (param == null || param.equals("")) { return ""; } StringBuilder builder = new StringBuilder(param); Matcher mc = p.matcher(param); int i = 0; while (mc.find()) { // System.out.println(builder.toString()); // System.out.println("mc.start():" + mc.start() + ", i: " + i); // System.out.println("mc.end():" + mc.start() + ", i: " + i); builder.replace(mc.start() + i, mc.end() + i, "_" + mc.group().toLowerCase()); i++; } if ('_' == builder.charAt(0)) { builder.deleteCharAt(0); } return builder.toString(); } }
-----------------------------------------
以上程式碼會將大寫字母替換成小寫並增加下劃線
autoGenSerialNumFormat
auto_gen_serial_num_format