用java如何实现字符串风格由驼峰形式转换成下划线形式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java如何实现字符串风格由驼峰形式转换成下划线形式?相关的知识,希望对你有一定的参考价值。
如把HelloWorld转化成hello_world。
public class transformpublic static String trans(String str)
List record =new ArrayList();
for(int i=0;i<str.length();i++)
char tmp =str.charAt(i);
if((tmp<='Z')&&(tmp>='A'))
record.add(i);//记录每个大写字母的位置
record.remove(0);//第一个不需加下划线
str= str.toLowerCase();
char[] charofstr = str.toCharArray();
String[] t =new String[record.size()];
for(int i=0;i<record.size();i++)
t[i]="_"+charofstr[(int)record.get(i)];//加“_”
String result ="";
int flag=0;
for(int i=0;i<str.length();i++)
if((flag<record.size())&&(i==(int)record.get(flag)))
result+=t[flag];
flag++;
else
result+=charofstr[i];
return result;
public static void main(String [] args)
String hh = "HelloWolrd";
System.out.println(trans(hh));
追问
能够给下详细解答思路呢,谢谢
追答首先,进行一遍遍历,记录下每个大写字母的位置,第一个大写字母除外;然后,将字符串转换成为字符数组,将对应位置上的字母前加上下划线;最后,将字符串数组进行拼接,大写字母位置的字符串替换成第二步中的字符串,完成。
参考技术A 语法重构应该能解决java实现驼峰和下划线相互转换
记录一波,工作使用到直接copy。
/***
* <p>
* 将驼峰转为下划线
* </p >
* @param str
* @return java.lang.String
* @author comapss
* @date 2022/5/9 0:01
* @since 1.0.0
**/
public static String humpToUnderline(String str)
Pattern compile = Pattern.compile("[A-Z]");
Matcher matcher = compile.matcher(str);
StringBuffer sb = new StringBuffer();
while(matcher.find())
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
matcher.appendTail(sb);
return sb.toString();
/***
* <p>
* 将下划线转为驼峰
* </p >
* @param str
* @return java.lang.String
* @author comapss
* @date 2022/5/9 0:01
* @since 1.0.0
**/
public static String underlineToHump(String str)
str = str.toLowerCase();
Pattern compile = Pattern.compile("_[a-z]");
Matcher matcher = compile.matcher(str);
StringBuffer sb = new StringBuffer();
while(matcher.find())
matcher.appendReplacement(sb, matcher.group(0).toUpperCase().replace("_",""));
matcher.appendTail(sb);
return sb.toString();
以上是关于用java如何实现字符串风格由驼峰形式转换成下划线形式?的主要内容,如果未能解决你的问题,请参考以下文章