駝峯命名與下劃線命名相互轉換

記得在thinkphp框架中,模型名會自動轉換爲對應下劃線的表名,如,UserType 自動轉化爲user_type,在平時寫程序中很多地方也會用到類似的自動轉換方法。

Java版本的駝峯命名與下劃線命名相互轉換

  • 駝峯命名轉下劃線命名

     方法:小寫字母和大寫字母緊挨一起的之間,加上分隔符,然後全部轉小寫

    示例代碼:

/**
* 功能:駝峯命名轉下劃線命名
* 小寫和大寫緊挨一起的地方,加上分隔符,然後全部轉小寫
*/
public static String camel2under(String c)
{
        String separator = "_";
	c = c.replaceAll("([a-z])([A-Z])", "$1"+separator+"$2").toLowerCase();
	return c;
}
  • 下劃線命名轉駝峯命名

     方法:將下劃線替換爲空格,將字符串根據空格分割成數組,再將每個單詞首字母大寫

    示例代碼:

/**
 * 功能:下劃線命名轉駝峯命名
 * 將下劃線替換爲空格,將字符串根據空格分割成數組,再將每個單詞首字母大寫
 * @param s
 * @return
 */
private static String under2camel(String s)
{
	String separator = "_";
	String under="";
	s = s.toLowerCase().replace(separator, " ");
	String sarr[]=s.split(" ");
	for(int i=0;i<sarr.length;i++)
	{
		String w=sarr[i].substring(0,1).toUpperCase()+sarr[i].substring(1);
		under +=w;
	}
    return under;
}

 

 

順便附上php版本的轉換方法(來源:https://www.cnblogs.com/walblog/articles/7991102.html):

   /**
  * 功能:下劃線命名轉駝峯命名
  * 方法:
  * step1.原字符串轉小寫,原字符串中的分隔符用空格替換,在字符串開頭加上分隔符
  * step2.將字符串中每個單詞的首字母轉換爲大寫,再去空格,去字符串首部附加的分隔符.
  */
    function camelize($uncamelized_words,$separator='_')
    {
        $uncamelized_words = $separator. str_replace($separator, " ", strtolower($uncamelized_words));
        return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $separator );
    }

  /**
  * 功能:駝峯命名轉下劃線命名
  * 方法:小寫和大寫緊挨一起的地方,加上分隔符,然後全部轉小寫
  */
    function uncamelize($camelCaps,$separator='_')
    {
        return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps));
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章