public class Csdn1 { public static void main(String[] args) { String s = "AbcDefHis"; //先将其转换为小写的 String str = s.toLowerCase(); StringBuffer sb = new StringBuffer(str); sb.insert(3,"_").insert(7,"_"); System.out.println(sb.toString()); } }; 我写的一个转换,不过比较死,只能转换这一个,呵呵
telloo() 个们,你的严重不行
public class Test { public static String aa(String a) { String b = ""; char[] c = a.toCharArray(); for(int i=0;i<c.length;i++) { if(Character.isUpperCase(c[i])) { if(i==0) b+=Character.toLowerCase(c[i]); else b = b+ "_"+Character.toLowerCase(c[i]); } else { b += c[i]; }
} return b; }
public static void main(String[] args) { String a = "AbcDefHis"; System.out.println(Test.aa(a)); } }
{
public static void main(String[] args)
{
String s = "AbcDefHis";
//先将其转换为小写的
String str = s.toLowerCase();
StringBuffer sb = new StringBuffer(str);
sb.insert(3,"_").insert(7,"_");
System.out.println(sb.toString());
}
};
我写的一个转换,不过比较死,只能转换这一个,呵呵
{ public static String aa(String a)
{
String b = ""; char[] c = a.toCharArray();
for(int i=0;i<c.length;i++)
{
if(Character.isUpperCase(c[i]))
{
if(i==0)
b+=Character.toLowerCase(c[i]);
else
b = b+ "_"+Character.toLowerCase(c[i]);
}
else
{
b += c[i];
}
}
return b;
}
public static void main(String[] args)
{
String a = "AbcDefHis";
System.out.println(Test.aa(a));
}
}
System.out.println(str);
System.out.println(str);
System.out.println(str);
str = str.replaceAll("(?<!\\b)(?=[A-Z])", "_").toLowerCase();
str.replaceAll("(?<!\\b)(?=[A-Z])", "_")其实就是找到插入"_"的位置,第一个反向预搜索确定前面不是分隔符,比如起始位置,第二个正向预搜索找到大写字母,在大写字母前面插入"_"
http://www.regexlab.com/zh/regref.htm
带有“!”的表示不配匹字串,带有“=”的表示匹配字串。(?=[A-Z]) 表示匹配 A-Z字母前的空隙。
(?![A-Z]) 表示匹配非A-Z字母前的空隙。
(?<=[A-Z]) 表示匹配 A-Z字母后的空隙。
(?<![A-Z]) 表示匹配非A-Z字母后的空隙。(?!\\b)或者(?<!\\b)表示同时匹配非行首或行尾的边界
str = str.replaceAll( "(? <!\\b)([A-Z]) ", "_$1 ").toLowerCase();
要比
str = str.replaceAll( "(? <!\\b)(?=[A-Z]) ", "_ ").toLowerCase();
效率高感谢:believefym(feng)
str = str.replaceAll("([^^])([A-Z])", "$1_$2").toLowerCase();效率最高
str = str.replaceAll( "(? <!\\b)([A-Z]) ", "_$1 ").toLowerCase(); 效率其次
str = str.replaceAll( "(? <!\\b)(?=[A-Z]) ", "_ ").toLowerCase(); 效率最差