时间: 2023-06-06 【学无止境】 阅读量:共1764人围观
简介 记录两个小工具 1.java 驼峰转下划线 2.提取一个字符串中的整数和小数部分
驼峰转下划线
/**
* 驼峰转下划线
* userName ----> user_name
* user_name ----> user_name
*
* @param camelCaseStr 驼峰字符串
* @return 带下滑线的String
*/
public static String toUnderlineCase(String camelCaseStr) {
if (camelCaseStr == null) {
return null;
}
// 将驼峰字符串转换成数组
char[] charArray = camelCaseStr.toCharArray();
StringBuffer buffer = new StringBuffer();
//处理字符串
for (int i = 0, l = charArray.length; i < l; i++) {
if (charArray[i] >= 65 && charArray[i] <= 90) {
buffer.append("_").append(charArray[i] += 32);
} else {
buffer.append(charArray[i]);
}
}
return buffer.toString().replaceAll("_(.*)","$1");
}
提取一个字符串中的整数和小数部分
/**
* 功能描述: 提取一个字符串中的整数和小数部分
* @Param: [str]
* @Return: java.lang.String
* @Author: zhangfuxiang
* @Date: 2022/6/1 11:00
*/
public static String getNumber(String str) {
// 需要取整数和小数的字符串
// 控制正则表达式的匹配行为的参数(小数)
Pattern p = Pattern.compile("(\\d+\\.\\d+)");
//Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例.
Matcher m = p.matcher(str);
//m.find用来判断该字符串中是否含有与"(\\d+\\.\\d+)"相匹配的子串
if (m.find()) {
//如果有相匹配的,则判断是否为null操作
//group()中的参数:0表示匹配整个正则,1表示匹配第一个括号的正则,2表示匹配第二个正则,在这只有一个括号,即1和0是一样的
str = m.group(1) == null ? "" : m.group(1);
} else {
//如果匹配不到小数,就进行整数匹配
p = Pattern.compile("(\\d+)");
m = p.matcher(str);
if (m.find()) {
//如果有整数相匹配
str = m.group(1) == null ? "" : m.group(1);
} else {
//如果没有小数和整数相匹配,即字符串中没有整数和小数,就设为空
str = "";
}
}
return str;
}