Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

IN JAVA PLEASE !!! Assignment: 1. Consider an interface public interface NumberF

ID: 3721371 • Letter: I

Question

IN JAVA PLEASE !!!

Assignment: 1. 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 DeciamlSeparatporFormatrer formats an integer with decimal separators; for example, one million as 1,000,000. An AccoutingFormatter formats negative numbers with parenthesis; for example, -1 as (1). A BaseFormatter formats the number in 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 tester class called IntFormatTester.java that shows the program working with an array of numbers. Use 20 for n for the BaseFormatter

Explanation / Answer

Code:

import java.util.Scanner;

interface NumberFormatter

{

String format(int n);

}

//simply convert Integer to String

class DefaultFormatter implements NumberFormatter

{

@Override

public String format(int n) {

// TODO Auto-generated method stub

return String.valueOf(n);

}

}

//comma separated Integer to String conversion

class DecimalSeparatorFormatter implements NumberFormatter

{

@Override

public String format(int n) {

// TODO Auto-generated method stub

String numberAsString = String.format("%,d", n);

return numberAsString;

}

}

//replace negative integer -n with (n)

class AccountingFormatter implements NumberFormatter

{

@Override

public String format(int n) {

// TODO Auto-generated method stub

String str=null;

if(n<0)

{

str=String.valueOf(n);

str=str.replace('-', '(');

str=str+")";

}

else

str=String.valueOf(n);

return str;

}

}

//Convert one base integer to another base integer

class BaseFormatter implements NumberFormatter

{

int base;

public BaseFormatter(int base) {

super();

this.base = base;

}

@Override

public String format(int n) {

// TODO Auto-generated method stub

String str=String.valueOf(n);

return Integer.toString(Integer.parseInt(str, 10), base);

}

}

public class IntFormatTester {

//test method to perform formatting

static void formatting(int arr[],NumberFormatter num)

{

for(int i=0;i<arr.length;i++)

{

System.out.println(num.format(arr[i]));

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

int base=20;

int arr[]=new int[10];

System.out.println("Enter the array");

//enter the array

for(int i=0;i<arr.length;i++)

{

Scanner scanner=new Scanner(System.in);

arr[i]=scanner.nextInt();

}

//defining the objects for each formatting class

NumberFormatter num1=new DefaultFormatter();

NumberFormatter num2=new DecimalSeparatorFormatter();

NumberFormatter num3=new AccountingFormatter();

NumberFormatter num4=new BaseFormatter(base);

System.out.println("----Starting Default Formatting----");

formatting(arr,num1);

System.out.println("----End Formatting ---- ");

System.out.println("----Starting Decimal SeparatorFormatting----");

formatting(arr,num2);

System.out.println("----End Formatting ---- ");

System.out.println("----Starting Account Formatting----");

formatting(arr,num3);

System.out.println("----End Formatting ---- ");

System.out.println("----Starting Base Formatting----");

formatting(arr,num4);

System.out.println("----End Formatting ---- ");

}

}

Output:

Enter the array
10000
-20000
10
2
3
4
5
6
7
8
----Starting Default Formatting----
10000
-20000
10
2
3
4
5
6
7
8
----End Formatting ----

----Starting Decimal SeparatorFormatting----
10,000
-20,000
10
2
3
4
5
6
7
8
----End Formatting ----

----Starting Account Formatting----
10000
(20000)
10
2
3
4
5
6
7
8
----End Formatting ----

----Starting Base Formatting----
1500
-2a00
a
2
3
4
5
6
7
8
----End Formatting ----

Note:[Please comment in case of any query.Happy to help]