PHP面试题之驼峰字符串转换成下划线样式例子

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

php面试题之驼峰字符串转换成下划线样式例子自己在看到这个问题的时候,想到的是用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];} www.111cn.net

echo strtolower($new) . '<br>';

答案2:

代码如下 复制代码 echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>';

那反过来下划线分割字符串转换成驼(www.111cn.net)峰式字符串怎么搞呢

代码如下 复制代码 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() }} from:http://www.111cn.net/phper/php-cy/59093.htm

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航