Я столкнулся с такой же проблемой и нашел компактный способ ее решения. Если бы мне пришлось использовать это несколько раз в моем коде или если бы я делал это для более чем четырех цифр, я бы использовал одно из других предложенных решений, но этот способ позволяет мне поместить все это в выражение:
((x<10)?"000": (x<100)?"00": (x<1000)?"0": "") + x
Это на самом деле то же самое, что и ваш код, но с использованием тернарного оператора вместо операторов if-else (и перемещения «+ x», который всегда будет частью выражения, за пределы условного кода). 1004 *