【问题标题】:Lpad with zero's in vbscript在vbscript中带零的Lpad
【发布时间】:2013-08-11 16:30:44
【问题描述】:

我正在尝试在左侧填充一个带有 0 的字符串。输出字符串的长度应该是 7。 这是我的代码:

inputstr = "38"
in = string(7 - Len(inputStr),0) & inputStr
msgbox in

我收到错误预期语句 请帮我 谢谢你

【问题讨论】:

    标签: string vbscript


    【解决方案1】:

    功能:

    Private Function LPad (str, pad, length)
        LPad = String(length - Len(str), pad) & str
    End Function
    

    用途:

    LPad(12345, "0", 7)
    

    【讨论】:

      【解决方案2】:

      以下代码的运行速度将提高 5%:

      inputStr = "38"
      result = Right("0000000" & inputStr, 7)
      
      msgbox result
      

      【讨论】:

      • 但存在截断和硬编码宽度和填充符的风险。
      • 我只是使用了上面问题中提供的长度。
      • 是对这个问题的一个很好的单行答案,并且直观地正确......正是我需要这个答案 - 不是函数定义,而是简单、/最快/和直观的东西我可以直接进入我的(>31 位无符号十六进制函数)代码。谢谢安德烈。
      【解决方案3】:

      此函数将使用给定的填充字符将输入值左填充到给定的字符数,而不截断输入值:

      Function LPad(s, l, c)
        Dim n : n = 0
        If l > Len(s) Then n = l - Len(s)
        LPad = String(n, c) & s
      End Function
      

      输出:

      >>> WScript.Echo LPad(12345, 7, "0")
      0012345
      >>> WScript.Echo LPad(12345, 3, "0")
      12345

      【讨论】:

        【解决方案4】:

        in 是保留字,因此不能用作变量名,您必须传递字符串"0" 而不是整数0,所以:

        inputStr = "38"
        result = string(7 - Len(inputStr), "0") & inputStr
        
        msgbox result
        

        【讨论】:

        • 如果inputStr 的长度超过 7 个字符,这仍然会失败。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        • 2017-09-14
        • 2020-10-16
        相关资源
        最近更新 更多