将下划线变量转换为驼峰式的字符变量 eg.app_acc --> appAcc

将下划线变量转换为驼峰式的字符变量, 变量的组成可以是:字母, 数字,下划线"_", 美元符号"$", 这个工具类,没有考虑其转换效率。


其他博客有对转换大写的优化,将字符减去32刚好获取该字母的大写字母: (char)(要转大写的字符-32); 当变量中有$时,简单的这么做减法可能会出问题。


用的eclipse做的开发, 使用alt+shift+a快捷键启动多行编辑,如果不支持该快捷键,就只能老老实实的搞了, 便于将变量赋值到数组中。 


[java]  view plain  copy
  1. package com.thinkive;  
  2. public class Underline2Camel {  
  3.   
  4.     /**拼接后的前缀*/  
  5.     private static final String APPEND_PRE = "@JsonProperty(\"";  
  6.     /**拼接后的后缀*/  
  7.     private static final String APPEND_SUF = "\")";  
  8.     /**变量的修饰符: public, private等*/  
  9.     private static final String DECORATE = "private ";  
  10.     /**变量的类型 String, int*/  
  11.     private static final String VAR_TYPE = "String ";  
  12.     /**单词间的分隔符*/  
  13.     private static final String SPLIT_CHAR = "_";  
  14.     /**分号*/  
  15.     private static final String SEMICOLON = ";";  
  16.     /**是否显示拼接的内容*/  
  17.     private static final boolean isShowAppend = true;  
  18.       
  19.     public static void main(String[] args) {  
  20.           
  21.         StringBuilder builder = new StringBuilder();  
  22.         for (String original : sources) {  
  23.             original = original.trim();  
  24.             String[] parts = original.split(SPLIT_CHAR);  
  25.               
  26.             if(isShowAppend) {  
  27.                 // 如果该变量没有指定的分隔符, 则原样输出。  
  28.                 if(parts.length == 0) {  
  29.                     System.out.println(APPEND_PRE+original+APPEND_SUF);  
  30.                     System.out.println(DECORATE+VAR_TYPE+original+SEMICOLON);  
  31.                 }else {  
  32.                     builder.append(APPEND_PRE+original+APPEND_SUF+System.getProperty("line.separator"));  
  33.                     printVar(builder, parts);  
  34.                 }  
  35.             }else {  
  36.                 if(parts.length == 0) {  
  37.                     System.out.println(DECORATE+VAR_TYPE+original+SEMICOLON);  
  38.                 }else {  
  39.                     printVar(builder, parts);  
  40.                 }  
  41.             }  
  42.               
  43.             builder.setLength(0);  
  44.         }  
  45.     }  
  46.       
  47.     /** 
  48.      * 打印转换后的变量 
  49.      */  
  50.     private static StringBuilder printVar(StringBuilder builder, String[] parts) {  
  51.         builder.append(DECORATE+VAR_TYPE);  
  52.         builder.append(parts[0]);  
  53.         for (int i = 1; i < parts.length; i++) {  
  54.             String pill = parts[i];  
  55.             builder.append((pill.charAt(0)+"").toUpperCase()+pill.substring(1));  
  56.         }  
  57.         builder.append(SEMICOLON);  
  58.         System.out.println(builder.toString());  
  59.         return builder;  
  60.     }  
  61.       
  62.     /**要转换的字符*/  
  63.     private static String[] sources = {  
  64.         "id_kind              ",  
  65.         "id_no                ",  
  66.         "birthday             ",  
  67.         "book_type            "  
  68.     };  
  69. }  


执行结果:(将变量修改为: isShowAppend=false, 则只输出变量 )

@JsonProperty("id_kind")

private String idKind;

@JsonProperty("id_no")

private String idNo;

@JsonProperty("birthday")

private String birthday;

@JsonProperty("book_type")

private String bookType;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值