Search code examples
javaarraysgetter-setter

Hi, the requirement is to display the user input in table format


The requirement is to display the user input student details in table format.

For example:
Enter the number of students
2
Enter the student1 details
28
Science
Is the student from same country[Y/N]
N
Enter the country
Australia
Enter the Student2 details
29
Commerce
Is the Student from same country[Y/N]
Y
The student details are
Age         Subject     Country        
28          Science    Australia      
29          Commerce     UK

**If the student are from same country by default the value would be printed as UK under country column. I am stuck at the point where the value needs to be displayed in tabular format under headers(Age,name,country)along with the default value(UK in this case). I am very new to java and not able to proceed furthur. Your any help would of great benefit to me. Thanks in advance.

My Code is:

public class StudentTable{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        //Port obj = new Port();
        int a,i;
        String b = null;
        System.out.println("Enter the number of students");
        a = sc.nextInt();
        int[] age = new int[a+1];
        String[] name = new String[a+1];
        for(i=1;i<a+1;i++){
            System.out.println("Enter the students "+i+ " details");
            age[i] = sc.nextInt();
            sc.nextLine();
            name[i] = sc.nextLine();
            System.out.println("Is the student from same country[Y/N]");
            b = sc.nextLine();

                if(b=="N"){
                System.out.println("Enter the country");
                String country = sc.next();
                return;
                }
        }
                if(b=="Y");
                String country = "India";
                    System.out.println("The student details are");
                    System.out.format("%-15s%-15s%-15s","Age","name","country");

Solution

  • 1.Read about difference between "==" OR "equals",sysout.printf and clean code.

     public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    
    
    
        //Port obj = new Port();
        int count, i;
        String b ;
    
        System.out.println("Enter the number of students");
        count= sc.nextInt();
    
        int[] age = new int[count];
        String[]  name = new String[count];
        String[] country=new String[count];
        for (i = 0; i < count; i++) {
            System.out.println("Enter the students " + i+1 + " details");
            System.out.println("Your age?");
    
            age[i] = sc.nextInt();
    
            sc.nextLine();
            System.out.println("Your name?");
    
            name[i] = sc.nextLine();
            System.out.println("Is the student from same country[Y/N]");
            b = sc.nextLine();
    
            // if(b=="N")
            if (b.equals("N")) {
                System.out.println("Enter the country");
                 country[i] = sc.next();
    
            }
            //if(b=="Y")
            if (b.equals("Y")) {
                 country[i] = "India";
            }
        }
       String frmt= String.format("%-15s%-15s%-15s","Age","name","country");
        System.out.println("The student details are");
        System.out.println(frmt);
        for( i=0;i<age.length;i++){
    
            System.out.printf("%d  %15s  %14s",age[i],name[i],country[i]);
            System.out.println();
        }
    }
    
    }