Java string驼峰转下划线
时间: 2023-09-06 11:10:15 浏览: 107
以下是Java字符串驼峰转下划线的示例代码:
```java
public static String camelToUnderline(String str) {
if (str == null || "".equals(str.trim())) {
return "";
}
int len = str.length();
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
sb.append("_").append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
```
示例:
```java
String camelStr = "helloWorld";
String underlineStr = camelToUnderline(camelStr); // "hello_world"
```
相关问题
String驼峰转下划线
### 实现驼峰命名转下划线小写
为了实现将字符串从驼峰命名法转换为带有下划线分隔的小写形式,在Java中可以采用正则表达式来识别大写字母并插入下划线,随后统一转换成小写字符。下面给出了一种具体的方法实现:
```java
public class NamingConventionConverter {
/**
* 方法用于将给定的驼峰命名字符串转化为下划线分割的小写字符串。
*/
public static String camelToUnderscore(String input) {
// 定义下划线作为分隔符
final String UNDERSCORE = "_";
// 使用正则表达式匹配一个小写字母后面跟着的大写字母,并在这两者间加入下划线
String result = input.replaceAll("([a-z])([A-Z])", "$1" + UNDERSCORE + "$2");
// 转换整个字符串为小写返回
return result.toLowerCase();
}
}
```
此方法通过`replaceAll()`函数中的正则表达式参数定位到任何由小写字母直接跟随着大写字母的位置,并在此处插入指定的分隔符即下划线[^1]。
对于更复杂的情况,如果存在连续多个大写字母(例如HTMLParser),可能还需要额外处理以确保不会在这些位置错误地添加不必要的下划线。一种改进方案是在上述基础上增加对这种情况的支持:
```java
// 进一步优化后的版本能够更好地处理连续大写的场景
result = result.replaceAll("([A-Z]+)([A-Z][a-z])", "$1_" + "$2").toLowerCase();
```
这种方法先解决了连续大写字母的问题再做整体的小写转换[^3]。
java map驼峰转下划线
在Java中,将驼峰命名的字符串转换为下划线命名的字符串可以通过以下步骤实现:
1. 首先,导入Java的正则表达式库:`import java.util.regex.Pattern;`
2. 定义一个方法,例如`camelToUnderline`,该方法接收一个驼峰命名的字符串作为参数,并返回转换后的下划线命名的字符串。
3. 在方法内部,使用正则表达式将驼峰命名的字符串转换为下划线命名的字符串。可以使用`Pattern`类的`compile`方法来编译正则表达式,并使用`matcher`方法创建一个匹配器。
4. 使用正则表达式的`replaceAll`方法,将驼峰命名的字符串中的大写字母替换为下划线加小写字母。
5. 返回转换后的下划线命名的字符串。
下面是一个示例代码:
```java
import java.util.regex.Pattern;
public class CamelToUnderlineExample {
public static void main(String[] args) {
String camelCase = "javaMap驼峰转下划线";
String underlineCase = camelToUnderline(camelCase);
System.out.println(underlineCase);
}
public static String camelToUnderline(String camelCase) {
Pattern pattern = Pattern.compile("(?<=[a-z])([A-Z])");
return pattern.matcher(camelCase).replaceAll("_$1").toLowerCase();
}
}
```
运行以上代码,输出结果为:`java_map_驼峰转下划线`
阅读全文