文章摘要
在PHP中,用你认为最简洁的方法把驼峰样式的字符串转换成下划线样式的字符串,例:输入是FooBar的话,输出则是foo_bar.
在PHP中,用你认为最简洁的方法把驼峰样式的字符串转换成下划线样式的字符串,例:输入是FooBar的话,输出则是foo_bar.
自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想,好吧,下面来看看答案.
答案1,代码如下:
$str = 'OpenAPI';
$length = mb_strlen($str);
$new = '';
for($i = 0; $i < $length; $i++)
{
$num = ord($str[$i]);
$pre = ord($str[$i - 1]);
$new .= ($i != 0 && ($num >= 65 && $num <= 90) && ($pre >= 97 && $pre <= 122)) ? "_{$str[$i]}" : $str[$i];
}
echo strtolower($new) . '<br>';
答案2,代码如下:
echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>';
那反过来下划线分割字符串转换成驼峰式字符串怎么搞呢,代码如下:
f = new File("d:/temp/t.txt")
if(f.exists()){
f.eachLine{ line->
line = line.trim()
String[] elems = line.split('_')
for(int i = 0; i < elems.length; i++){
elems[i] = elems[i].toLowerCase()
if(i != 0){
String elem = elems[i]
char first = elem[0] as char
elems[i] = "" + (char)(first - 32) + elem.substring(1)
}
}
println elems.join()
}
}
小二CMS介绍
我们立足合肥,业务覆盖安徽、全国及全球市场。我们凭借一支经验丰富、富有创意、协作无间的专业技术团队,专注于将前沿技术通过高效简捷的途径呈现给客户,量身打造优质解决方案。我们致力于通过持续努力,成为客户在信息化领域值得托付、共创价值的长期战略合作伙伴,协助客户在新经济时代敏锐捕捉商机,拓展发展空间,构筑强大竞争力。小二CMS专注企业数字化转型的智能建站与营销系统,提供从官网搭建、品牌推广到运营增长的一站式服务,助力中小企业低门槛拥有专业级互联网阵地。
了解全部业务
登录后方可参与评论
立即登录