国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP面試題之駝峰字符串轉(zhuǎn)換成下劃線樣式例子

2024-05-04 23:06:33
字體:
供稿:網(wǎng)友

在PHP中,用你認為最簡潔的方法把駝峰樣式的字符串轉(zhuǎn)換成下劃線樣式的字符串,例:輸入是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>';

那反過來下劃線分割字符串轉(zhuǎn)換成駝峰式字符串怎么搞呢,代碼如下:

  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.     } 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 东辽县| 高雄县| 定远县| 始兴县| 大冶市| 马公市| 航空| 富锦市| 从江县| 高碑店市| 桦南县| 自治县| 绥中县| 虹口区| 屯留县| 隆德县| 天津市| 扶风县| 荣成市| 融水| 平江县| 临武县| 龙江县| 阳谷县| 英山县| 南皮县| 济南市| 那曲县| 东宁县| 阜新| 德令哈市| 二连浩特市| 涡阳县| SHOW| 定西市| 西和县| 阿瓦提县| 吉首市| 怀集县| 区。| 宜良县|