This is supposed to be programmed using Java.
Consider an interface:
public interface NumberFormatter {
String format(int n);
}
Provide four classes that implement this interface. A DefaultFormatter formats an integer in the usual way. A DecimalSeparatorFormatter formats an integer with decimal separators; for example, one million as 1,000,000. An AccountingFormatter formats negative numbers with parentheses; for example, -1 as (-1). A BaseFormatter formats the number as base n, where n is any number between 2 and 36 that is provided in the constructor.
Write a method that takes an array of integers and a NumberFormatter object and prints each number on a separate line, formatted with the given formatter. The numbers should be right-aligned.
Provide a test class called FormatIntsTest.java that shows the program working with an array of numbers. Use the numbers 8, 100, -10, 45, and 0 as your test values in the array. Show all four formatters working with the array. Use 20 for n for the BaseFormatter.