下划线字符串和驼峰法字符串转换工具

下划线字符串和驼峰法字符串转换工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.*.common.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* @Autor : zyf
*/
public class UnderlineToCamelUtil {

public static final char UNDERLINE='_';
private static Pattern UNDERLINE_PATTERN = Pattern.compile("_");

public static String camelToUnderline(String param){
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);
sb.append(Character.toLowerCase(c));
}else{
sb.append(c);
}
}
return sb.toString();
}
/**
* 下划线转驼峰
* @param param
* @return
*/
public static String underlineToCamel(String param){
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 (c==UNDERLINE){
if (++i<len){
sb.append(Character.toUpperCase(param.charAt(i)));
}
}else{
sb.append(c);
}
}
return sb.toString();
}
public static String underlineToCamel2(String param){
if (param==null||"".equals(param.trim())){
return "";
}
StringBuilder sb=new StringBuilder(param);
Matcher mc = UNDERLINE_PATTERN.matcher(param);
int i=0;
while (mc.find()){
int position=mc.end()-(i++);
//String.valueOf(Character.toUpperCase(sb.charAt(position)));
sb.replace(position-1,position+1,sb.substring(position,position+1).toUpperCase());
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(underlineToCamel("a_b_c"));
System.out.println(underlineToCamel2("a_b_c"));
}

}

人生两苦:想要却不得,拥有却失去。 –褚禄山
珍惜当下,与君共勉~


本文标题:下划线字符串和驼峰法字符串转换工具

文章作者:fufua

发布时间:2019年05月27日 - 10:54:13

最后更新:2019年05月27日 - 17:04:29

原始链接:https://qq1028951741.github.io/2019/05/27/下划线字符串和驼峰法字符串转换工具/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

this is end, thank you for reading