当前位置:首页 > PHP教程 > php面试题 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-13 17:45:35 浏览: 评论:0 

在PHP中,用你认为最简洁的方法把驼峰样式的字符串转换成下划线样式的字符串,例:输入是FooBar的话,输出则是foo_bar.

自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想,好吧,下面来看看答案.

答案1,代码如下:

  1. $str = 'OpenAPI'
  2. $length = mb_strlen($str); 
  3. $new = ''
  4. for($i = 0; $i < $length$i++) 
  5.  $num = ord($str[$i]); 
  6.  $pre = ord($str[$i - 1]); 
  7.  $new .= ($i != 0 && ($num >= 65 && $num <= 90) && ($pre >= 97 && $pre <= 122)) ? "_{$str[$i]}" : $str[$i]; 
  8. echo strtolower($new) . '<br>'

答案2,代码如下:

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

那反过来下划线分割字符串转换成驼峰式字符串怎么搞呢,代码如下:

  1. f = new File("d:/temp/t.txt"
  2. if(f.exists()){ 
  3.     f.eachLine{ line-> 
  4.         line = line.trim() 
  5.         String[] elems = line.split('_'
  6.         for(int i = 0; i < elems.length; i++){ 
  7.             elems[i] = elems[i].toLowerCase() 
  8.             if(i != 0){ 
  9.                 String elem = elems[i] 
  10.                 char first = elem[0] as char 
  11.                 elems[i] = "" + (char)(first - 32) + elem.substring(1) 
  12.             } 
  13.         } 
  14.         println elems.join() 
  15.     } 

Tags: PHP面试题 驼峰字符串

分享到: