Search code examples
actionscript-3actionscriptverbosity

Ruby-like Question: Make this function shorter (ActionScript 3)


I just wrote this incredibly verbose code to turn numbers like 2 into 02. Can you make this function shorter, please (maintaning the functionality)?

    public static function format(n:int, minimumLength:int):String {
        var retVal:String = n.toString();
        var stillNeed:int = minimumLength - retVal.length;
        for (var i:int = 0; i < stillNeed; i++) {
            retVal = "0" + retVal;
        }
        return retVal;
    }

Please use types for variables. Extra points (good-vibe points, not SO points) if there's already a built-in function that I don't know about.

If anybody wants to post some extremely short equivalent in some other language, that would be fun too.


Solution

  • This wouldn't be the fastest implementation (it does some unnecessary copying and has a loop), but it is nice and readable:

    public static function pad(num:int, minLength:uint):String {
        var str:String = num.toString();
        while (str.length < minLength) str = "0" + str;
        return str;
    }