·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP面试题之驼峰字符串转换成下划线样式例子

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

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
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