java下划线转换为驼峰,首字母可以设置大写或者小写


  1. /**
  2. * 下划线转换为驼峰
  3. *
  4. * @param line 下划线字符串
  5. * @param firstIsUpperCase 首字母是否转换为大写
  6. * @return
  7. */
  8. private static String underline2Camel(String line, boolean ... firstIsUpperCase) {
  9. String str = "";
  10. if(StringUtils.isBlank(line)){
  11. return str;
  12. } else {
  13. StringBuilder sb = new StringBuilder();
  14. String [] strArr;
  15. // 不包含下划线,且第二个参数是空的
  16. if(!line.contains("_") && firstIsUpperCase.length == 0){
  17. sb.append(line.substring(0, 1).toLowerCase()).append(line.substring(1));
  18. str = sb.toString();
  19. } else if (!line.contains("_") && firstIsUpperCase.length != 0){
  20. if (!firstIsUpperCase[0]) {
  21. sb.append(line.substring(0, 1).toLowerCase()).append(line.substring(1));
  22. str = sb.toString();
  23. } else {
  24. sb.append(line.substring(0, 1).toUpperCase()).append(line.substring(1));
  25. str = sb.toString();
  26. }
  27. } else if (line.contains("_") && firstIsUpperCase.length == 0) {
  28. strArr = line.split("_");
  29. for (String s : strArr) {
  30. sb.append(s.substring(0, 1).toUpperCase()).append(s.substring(1));
  31. }
  32. str = sb.toString();
  33. str = str.substring(0, 1).toLowerCase() + str.substring(1);
  34. } else if (line.contains("_") && firstIsUpperCase.length != 0) {
  35. strArr = line.split("_");
  36. for (String s : strArr) {
  37. sb.append(s.substring(0, 1).toUpperCase()).append(s.substring(1));
  38. }
  39. if (!firstIsUpperCase[0]) {
  40. str = sb.toString();
  41. str = str.substring(0, 1).toLowerCase() + str.substring(1);
  42. } else {
  43. str = sb.toString();
  44. }
  45. }
  46. }
  47. return str;
  48. }