Format integer with specified width

The problem

Write a method with the following header to format the integer with the specified width. public static String format(int number, int width) The method returns a string for the number with one or more prefix 0s. The size of the string is the width. For example, format(34, 4) returns 0034 and format(34, 5) returns 00034. If the number is longer than the width, the method returns the string representation for the number. For example, format(34, 1) returns 34. Write a test program that prompts the user to enter a number and its width and displays a string returned by invoking format(number, width).

Breaking it down

public static void main(String[] args) {

    Scanner input = new Scanner(;
    System.out.print("Enter a number and a width: ");
    int n = input.nextInt();
    int width = input.nextInt();


    String s = format(n, width);
    System.out.println("The number formatted: " + s);

public static String format(int number, int width) {

    return Strings.padStart(String.valueOf(number), width, '0');


Enter a number and a width: 10 5
The number formatted: 00010