需求:在计算规则中截去字符串开头的零且保留字符串类型
去除字符串开头的零(不转换为数字)
要实现保留字符串类型、截去开头所有零(全零字符串保留单个'0')的需求,用纯字符串操作的正则表达式或字符串方法就能搞定,以下是常见语言的实现方案:
JavaScript 实现
用正则表达式匹配开头的连续零(排除全零的情况),替换为空字符串即可:
function trimLeadingZeros(str) { // ^0+ 匹配开头的一个或多个零;(?!$) 确保不是字符串最后一个字符(避免全零被清空) return str.replace(/^0+(?!$)/, ''); }
测试验证:
trimLeadingZeros('000')→ 返回'0'trimLeadingZeros('050')→ 返回'50'trimLeadingZeros('076')→ 返回'76'trimLeadingZeros('135')→ 返回'135'trimLeadingZeros('107')→ 返回'107'
Python 实现
先用lstrip('0')去掉开头的零,再判断处理全零的情况:
def trim_leading_zeros(s): stripped = s.lstrip('0') # 如果去掉后为空(说明原字符串全是零),返回'0',否则返回处理后的结果 return stripped if stripped else '0'
同样测试上述案例,结果完全符合预期。
这类方法全程只做字符串操作,不会涉及数字类型转换,避免了超长数字字符串转数字时的精度丢失问题,完全满足需求。
内容的提问来源于stack exchange,提问作者A good person
相关产品推荐
相关产品推荐

