好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

在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()      }  }   

查看更多关于PHP面试题之驼峰字符串转换成下划线样式例子的详细内容...

  阅读:51次