【Java】キャメルケース→スネークケースに変換するプログラム
キャメルケース(camelCase)からスネークケース(snake_case)に変換するJavaのプログラムです。
public static String toSnakeCase(String text) { if (text == null) { return null; } if ("".equals(text)) { return ""; } StringBuilder sb = new StringBuilder(text.length()); sb.append(Character.toLowerCase(text.charAt(0))); for (char c : text.substring(1).toCharArray()) { if (Character.isUpperCase(c)) { sb.append("_").append(Character.toLowerCase(c)); } else { sb.append(c); } } return sb.toString(); }
簡単に解説すると、
- nullと空文字の場合は、それぞれnull, 空文字を返す
- 1文字目を小文字に変換してバッファに格納する
- 2文字目から最後まで順にみていって、大文字が現れたらアンダーバーと小文字に変換した文字をバッファに詰める。小文字ならそのまま詰める。
- バッファの文字を書き出して終了
実行してみます
System.out.println(toSnakeCase("a")); // a System.out.println(toSnakeCase("oneTwoThree")); // one_two_three