自己在看到这个问题的时候,想到的是用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

PHP面试题之驼峰字符串转换成下划线样式例子的更多相关文章

  1. php 把驼峰样式的字符串转换成下划线样式的字符串

    1.如何在php中把驼峰样式的字符串转换成下划线样式的字符串.例:输入是FooBar的话,输出则是foo_bar 以下是用正则的方式去完成,既然用到正则,方法肯定就不只一种,我们看下下面的方式 ech ...

  2. [LeetCode]面试题67. 把字符串转换成整数

    题目 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...

  3. 《剑指offer》面试题67. 把字符串转换成整数

    问题描述 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数.   首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. ...

  4. ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)

    业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ...

  5. 【剑指Offer学习】【面试题49:把字符串转换成整数】

    题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能.不能使用atoi或者其它相似的库函数. 题目解析 这看起来是非常easy的题目,实现基本功能 ,大部分人都能用10行之内的代码 ...

  6. 《剑指offer》第六十七题(把字符串转换成整数)

    // 面试题67:把字符串转换成整数 // 题目:请你写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不 // 能使用atoi或者其他类似的库函数. #include <ios ...

  7. Gson将字符串转换成JsonObject和JsonArray

    以下均利用Gson来处理: 1.将bean转换成Json字符串: public static String beanToJSONString(Object bean) { return new Gso ...

  8. JS 实现"可读"字符串转换成"二进制的01"字符串

    问题起源 看过一个漫画, 两位程序员在办公司交流, 可是说的语言却是010101类似的字符串.周围人很是惊异.计算机的世界,确实是由01组成的.今天突然想实现这个编码转换. 解决思路 学过C语言的都知 ...

  9. List转换成json格式字符串,json格式字符串转换成list

    一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...

随机推荐

  1. android Glide图片加载框架的初探

    一.Glide图片加载框架的简介 谷歌2014年开发者论坛会上介绍的图片加载框架,它让我们在处理不管是网路下载的图片还是本地的图片,减轻了很多工作量, 二.开发步骤: 1.添加链接库 compile ...

  2. express+gulp构建项目(一)项目目录结构

    express是基于nodejs平台的web框架,它可以让我们快速开发出web引用.而gulp是一种自动构建工具,非常强大,有了它,能帮我们完成很多繁琐的工作,例如,静态文件的压缩,为静态文件加上哈希 ...

  3. selenium ide脚本回放出现element not found

    原因: 点击按钮,没有设置时间延迟,而页面加载,需要时间:当页面元素未加载完全,执行点击事件,就会报错:element... not found. 解决方案: 在点击事件前添加新的COMMAND.设置 ...

  4. Java中值传递和引用传递的概念

    很多书中都提到了在Java中只存在值传递,但是今天在一个NanoHTTPD的源码中看到这样一段: if (qmi >= 0) { decodeParms(uri.substring(qmi + ...

  5. 树(三)——自平衡二叉树(AVL)

    简介 自平衡二叉树(AVL)属于二叉平衡树的一类,此类树主要完成一个从键到值的查找过程,即字典(或映射),它维护树高度的方式与其他数据结构不同. 自平衡规则: AVL树的左.右子树都是AVL树 左.右 ...

  6. YY前端课程5-6

    第五次课内容: 1. 要注意标签的层次,运用缩进indent,使HTML结构清晰,增加可读性accessible 2. HTML布局网页,CSS显示样式(CSS是用来美化HTML标签的) 3. 开放标 ...

  7. linux 系统负载高 如何检查

    1:load Average 1.1:什么是Load?什么是Load Average?    Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a mea ...

  8. Cookie与Session用法

    以下是Cookie的完整实例 MyEclipse新建web Project工程,建两个jsp文件,如下 1.login.jsp <%@ page language="java" ...

  9. Android中的数据保存

    形式 Android的数据保存分为3种形式:file, SharedPreference, Database 文件 主要思想就是通过Context类中提供的openFileInput和openFile ...

  10. C++中的全局变量、普通局部变量和静态局部变量的区别

    在C++中,我们经常难以说清楚全局变量.局部变量和静态局部变量的区别.本博客从变量存储特性和标识符作用域两个角度区分这三个变量. 首先,我们来看看C++程序的内存区域是如何分配的. 从上图,我们可以看 ...