Java字符串驼峰与下换线格式转换如何实现
作者:羊37 时间:2022-02-18 09:56:14
下面是自己写的三个方法,直接类名.方法即可调用,注意此处未做异常处理.
1.下划线转驼峰 lowerLineToHump()
2.首字母大写 capitalizeTheFirstLetter()
3.驼峰转下划线 humpToLowerLine()
package yang.demo.justwrite;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Description: 变量名转换
* @Class: VariableNameConversion
* @Author: Yiang37
* @Date: 2020/11/3 15:23
* @Version: 1.0
*/
public class VariableNameConversion {
private static Pattern humpPattern = Pattern.compile("[A-Z]");
public static void main(String[] args) {
System.out.println(lowerLineToHump("NAME_AND_addREsS"));
System.out.println(capitalizeTheFirstLetter("nAMe"));
System.out.println(humpToLowerLine("nameAndAddress"));
}
/**
* @Description: 下划线格式 -> 驼峰 大小写均可
* <p>
* NAME_AND_ADDRESS -> nameAndAddress
* @Author: Yiang37
* @Date: 2020/11/03 15:26:02
* @Version: 1.0
* @method: lowerLineAndUppercaseToHump()
* @param: [Big_]
* @return: java.lang.String
*/
public static String lowerLineToHump(String lowerLineAndUppercaseStr) {
//拆分成数组
String[] eachStr = lowerLineAndUppercaseStr.split("_");
StringBuilder resStr = new StringBuilder();
String firstStr = "";
String tempStr = "";
for (int i = 0; i < eachStr.length; i++) {
//第一个数组全部小写
if (i == 0) {
firstStr = eachStr[0].toLowerCase();
resStr.append(firstStr);
} else {
//以后的数组首字母大写
tempStr = capitalizeTheFirstLetter(eachStr[i]);
resStr.append(tempStr);
}
}
return resStr.toString();
}
/**
* @Description: 任意字符串 -> 首字母大写
* NAME -> Name
* name -> Name
* NaMe -> Name
* @Author: Yiang37
* @Date: 2020/11/03 16:50:16
* @Version: 1.0
* @method: capitalizeTheFirstLetter()
* @param: [str]
* @return: java.lang.String
*/
public static String capitalizeTheFirstLetter(String str) {
char firstChar = str.toUpperCase().charAt(0);
String nextStr = str.toLowerCase().substring(1);
return firstChar + nextStr;
}
/**
* @Description: 驼峰 -> 下划线格式 默认小写,存在第二个形参且为true时大写.
* @Author: Yiang37
* @Date: 2020/11/03 17:10:25
* @Version: 1.0
* @method: humpToLowerLine()
* @param: [humpStr, UppercaseZeroAndLowercaseOne]
* @return: java.lang.String
*/
public static String humpToLowerLine(String humpStr, boolean ... defaultUppercaseAndTrueLowercase) {
Matcher matcher = humpPattern.matcher(humpStr);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
//如果第二个形参为true 转为大写
if (defaultUppercaseAndTrueLowercase.length>=1 && defaultUppercaseAndTrueLowercase[0]){
return sb.toString().toUpperCase();
}
return sb.toString();
}
}
输出结果
nameAndAddress
Name
name_and_address
来源:https://www.cnblogs.com/yang37/p/13921957.html
标签:Java,字符串,驼峰,下换线,格式,转换
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java 超详细讲解IO操作字节流与字符流
2022-04-28 20:09:57
![](https://img.aspxhome.com/file/2023/3/74973_0s.png)
unity实现鼠标跟随(ITween)
2021-09-26 00:01:43
![](https://img.aspxhome.com/file/2023/8/79098_0s.png)
SpringMVC @RequestBody出现400 Bad Request的解决
2021-10-18 11:50:50
![](https://img.aspxhome.com/file/2023/0/61140_0s.jpg)
C# 添加、修改和删除PDF书签的实例代码
2022-09-24 06:45:55
![](https://img.aspxhome.com/file/2023/4/68614_0s.png)
interrupt()和线程终止方式_动力节点Java学院整理
2021-09-27 08:50:53
![](https://img.aspxhome.com/file/2023/8/74898_0s.png)
C++ lambda函数详解
2023-06-20 07:49:43
Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)
2023-01-05 13:49:34
Springboot引入hibernate配置自动建表并进行增删改查操作
2021-08-30 06:17:02
![](https://img.aspxhome.com/file/2023/9/76499_0s.png)
Java 静态代理与动态 代理解析
2023-08-22 17:18:19
详解Eclipse 字体、字号的设置、最佳字体推荐
2023-11-26 12:25:32
![](https://img.aspxhome.com/file/2023/9/60149_0s.png)
java 接口回调实例详解
2023-11-19 15:44:24
新手初学Java流程控制
2023-08-23 08:12:34
![](https://img.aspxhome.com/file/2023/8/77108_0s.png)
教你用Java GUI实现文本文件的读写
2023-05-25 06:47:13
![](https://img.aspxhome.com/file/2023/3/66483_0s.png)
详解Java后端优雅验证参数合法性
2021-09-06 16:07:22
![](https://img.aspxhome.com/file/2023/9/60159_0s.jpg)
C#实现在Form里面内嵌dos窗体的方法
2022-04-27 07:13:07
SpringBoot配置文件中密码属性加密的实现
2022-07-08 18:32:03
![](https://img.aspxhome.com/file/2023/8/64018_0s.jpg)
java fastdfs客户端使用实例代码
2022-11-19 05:35:59
![](https://img.aspxhome.com/file/2023/7/79197_0s.jpg)
Servlet实现文件的上传与下载
2023-08-08 06:13:43
![](https://img.aspxhome.com/file/2023/2/58152_0s.jpg)
Java 实现并发的几种方式小结
2022-10-23 02:54:46
Java封装公共Result结果返回类的实现
2023-06-17 08:47:47
![](https://img.aspxhome.com/file/2023/2/57502_0s.jpg)