使用php、js或者其他语言实现字符串'AdminProTable'到'admin_pro_table'的转换如题,不限制单词个数
2 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
语言不同,思路相同,都是对字符串进行循环,如果当期字符为大写,那么就转小写该字符并且在前面拼接_字符,最后检查字符串是否以_开头,如果是就去掉最前面的_字符,也可以像第一个例子在循环的时候判断如果是第一个字符大写那么就不在字符前面拼接_字符JSvarold='AdminProTable';varstr='';for(keyinold){if(old[key].match(/^.*[A-Z]+.*$/)){str+=key!=0?'_':''+old[key].toLocaleLowerCase();}else{str+=old[key];}}console.log(str);运行结果PHP$old='AdminProTable';$str='';for($i=0;$i$str.=preg_match('/^[A-Z]+$/',$old[$i])?'_'.strtolower($old[$i]):$old[$i]; }$str=$str[0]==='_'?substr($str,1):$str;var_dump($str);?>运行结果Python#!/usr/bin/python#-*-coding:utf-8-*-old='AdminProTable'str=''foroinold:#printo.isupper()str+='_'+o.lower()ifo.isupper()elseo.lower()str=str[1:]ifstr.startswith('_')elsestrprintstr运行结果
繁花不似锦
TA贡献1851条经验 获得超4个赞
pythons='AdminProTable'print''.join(['_{}'.format(_.lower())if_.isupper()andi>0else_.lower()fori,_inenumerate(s)])jsvars='AdminProTable',t='';for(variins){varl=s[i].toLowerCase();t+=i>0&&s[i]==s[i].toUpperCase()?'_'+l:l;}console.log(t);
添加回答
举报
0/150
提交
取消
