Java驼峰和下划线互相转化
直接上代码 :
package com.utils;
public class ChangeChar {
public static final char UNDERLINE = '_';
public static void main(String[] args) {
/*驼峰转下划线*/
String str = " itemName bbbbCsss , \n" +
" category ,\n" +
"\tbarCode\t \n" +
"\tvolume\t \n" +
"\tlength\t \n" +
"\twidth\t \n" +
"\theight\t \n" +
"\tunitPrice\t \n" +
"\tshelfLife\t \n" +
"\tshelfLifeUnit\t /\n" +
"\t )";
/*下划线转驼峰*/
String str2 = " ITEM_NAME , \n" +
" CATEGORY ,\n" +
"\tBAR_CODE\t \n" +
"\tVOLUME\t \n" +
"\tLENGTH\t \n" +
"\tWIDTH\t \n" +
"\tHEIGHT\t \n" +
"\tUNIT_PRICE\t \n" +
"\tSHELF_LIFE\t \n" +
"\tSHELF_LIFE_UNIT\t";
/**
* 测试
* */
/* charType=2 表示大写, 其他情况都是小写*/
String STR_ABC = camelToUnderline(str, 2); // 下划线大写:ABC_DEF
String str_abc = camelToUnderline(str, 1); // 下划线小写:abc_def
System.out.println("驼峰转化成下划线大写 :" + STR_ABC);
System.out.println("驼峰转化成下划线小写 :" + str_abc);
String strAbc = underlineToCamel(str2); // 下划线转驼峰:abcDef
System.out.println("下划线化成驼峰 :" + strAbc);
}
//驼峰转下划线
public static String camelToUnderline(String param, Integer charType) {
if (param == null || "".equals(param.trim())) {
return "";
}
int len = param.length();
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c = param.charAt(i);
if (Character.isUpperCase(c)) {
sb.append(UNDERLINE);
}
if (charType == 2) {
sb.append(Character.toUpperCase(c)); //统一都转大写
} else {
sb.append(Character.toLowerCase(c)); //统一都转小写
}
}
return sb.toString();
}
//下划线转驼峰
public static String underlineToCamel(String param) {
if (param == null || "".equals(param.trim())) {
return "";
}
int len = param.length();
StringBuilder sb = new StringBuilder(len);
Boolean flag = false; // "_" 后转大写标志,默认字符前面没有"_"
for (int i = 0; i < len; i++) {
char c = param.charAt(i);
if (c == UNDERLINE) {
flag = true;
continue; //标志设置为true,跳过
} else {
if (flag == true) {
//表示当前字符前面是"_" ,当前字符转大写
sb.append(Character.toUpperCase(param.charAt(i)));
flag = false; //重置标识
} else {
sb.append(Character.toLowerCase(param.charAt(i)));
}
}
}
return sb.toString();
}
}
Java驼峰和下划线互相转化的更多相关文章
- java驼峰法和下划线法字符串的相互转换
java驼峰法和下划线法字符串的相互转换 1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class ...
- Java实现递归将嵌套Map里的字段名由驼峰转为下划线
摘要: 使用Java语言递归地将Map里的字段名由驼峰转下划线.通过此例可以学习如何递归地解析任意嵌套的List-Map容器结构. 难度:初级 概述 在进行多语言混合编程时,由于编程规范的不同, 有时 ...
- JAVA的驼峰和下划线互转帮助类
实体类: import java.io.Serializable; import lombok.AllArgsConstructor; import lombok.Data; import lombo ...
- 递归将Map里的字段名由驼峰转为下划线
导航 定位 概述 算法设计 递归技巧 代码实现 定位 本文适合于想要使用Java递归地将Map里的Key字段名从驼峰转为下划线,或者想了解如何处理任意递归的Map结构的筒鞋. 概述 在进行多语言混合编 ...
- $聊一聊"驼峰"和"下划线"——Python re.sub函数详细用法实例讲解
日常写代码时候会遇到一些字符串替换的操作,比如把一大堆"驼峰"形式的字符串批量转换成下划线形式."驼峰"形式的变量命名风格在Java中很常见,而下划线形式的变量 ...
- js字符串驼峰和下划线互相转换
// 下划线转换驼峰 function toHump(name) { return name.replace(/\_(\w)/g, function(all, letter){ return lett ...
- Java Json 数据下划线与驼峰格式进行相互转换
概述 今天遇见一个需求,需要对json数据进行下划线与驼峰格式之间进行转换,在Fastjson.Jackson.Gson都提供了转换的方式,在这里进行一下列举. User类: public class ...
- springmvc配置MappingJackson2HttpMessageConverter实现属性驼峰和下划线的转换
需求 php调用java接口时,因为php那边的属性都是下划线风格,java这边的属性都是驼峰的风格.配置springmvc的json转换,在requestBody的时候(调用对象的set 方法)将j ...
- jackson 常用注解,比如忽略某些属性,驼峰和下划线互转
一般情况下使用JSON只使用了java对象与字符串的转换,但是,开发APP时候,我们经常使用实体类来做转换:这样,就需要用到注解: Jackson默认是针对get方法来生成JSON字符串的,可以使用注 ...
随机推荐
- linux安装&卸载IB网卡(mellanox)驱动
由于工作上的需求,需要在redhat6.5服务器上面安装mellanox品牌的IB网卡,故整理了一个安装&卸载IB网卡驱动的教程: 一.安装 1)下载相应操作系统驱动 http://www.m ...
- python list基本操作一
a = [1,2,3,1,2,3] 一.删除元素 1.按索引删除: a.pop(1) # 删除第二个值 # in:[1,2,3,2] # out:[1,3,2] 返回值:被删除的元素,这个时候list ...
- scala中闭包的使用
闭包的实质就是代码与用到的非局部变量的混合,即: 闭包 = 代码 + 用到的非局部变量 实例1: 匿名函数中引入闭包 val multiplier = (i:Int) => i * factor ...
- Auto.js淘宝领喵币
最近,淘宝的新玩法,一直在充斥我的眼球,尤其是喵币的,盖楼... .... 于是就进去看了看,发现逛逛店铺,给好多喵币,但是要进20个,每个要15秒,好麻烦,于是就上网搜了一下,有没有脚本 因为之前搞 ...
- [CERC2017]Gambling Guide
题目 看起来非常随机游走,但是由于我们可以停在原地,所以变得不是非常一样 设\(f_x\)表示从\(x\)到\(n\)的期望距离 如果我们提前知道了\(f\),那么我们随机到了一张到\(y\)的车票, ...
- palindrome 回文 /// Manacher算法
判断最长不连续回文 #include <bits/stdc++.h> using namespace std; int main() { ]; while(gets(ch)) { ],an ...
- 常见PID里面的像素大小
因为tensorflow/models里faster R-cnn目前识别的好像是按照像素比上图片大小来识别的,所以在这里统计一下各个元件的像素大小的范围 DCS:70~200
- .net 裁剪图片
private void GetImg() { ) { return; } ]; string[] imgsize = Request["imgsize"].Split('& ...
- Android系统开发 编译系统签名的APP
前言 一般情况下,我们使用的签名都是自己生成的Java签名来编译APP. 但是,如果需要开发一些特定设备的APP(对权限有更高的要求,需求一些系统基本的权限,比如让APP可以控制设备的休眠),那就需要 ...
- android studio 一个项目如何打包多个apk
1.修改app的build.gradle文件 假设我们同一套代码编译2个app:demo1和demo2 android { ... productFlavors { // demo1 demo1 { ...