前言
因為一些原因,需要使用到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